如何使用godep管理依赖并在好雨快速部署

godep是目前golang主流的第三方的依赖管理工具,包括docker、coreos等很多基于go语言的项目都是使用godep来进行来解决项目包依赖和版本管理问题的。

Golang对包依赖的管理很严格,使用godep来管理依赖不但简单,还可以加快在 好雨 编译部署的速度,大大简化你的上线流程。

本贴将带你了解如何使用godep管理golang依赖

让我们先来安装godep

go get -u github.com/tools/godep

使用godep来保存和重写你的应用依赖,要先切换到$GOPATH目录下并执行以下命令

godep save -r ./...

这个命令做了哪些事情呢?

首先,godep会扫描当前目录下所属包中的import语句导入的所有外部依赖库(系统库忽略),取得外部依赖库的路径和当前对应的版本(即commit id)保存到Godeps/Godeps.json里,格式是JSON。

其次,godep会将每个依赖库都从$GOPATH目录拷贝到Godeps/_workspace下,注意拷贝的内容不包含代码管理信息比如.git目录,拷贝后的目录结构与$GOPATH完全相同。

接下来,我们需要将变动提交到代码库(好雨或github的仓库),如下面这样:

git add -A
git commit -m "Vendoring dependencies"
git push origin master

好雨 编译部署Golang应用时,Godeps/Godeps.json是必须的,我们通过这个文件来确认Go的版本和相关的外部依赖,所以在编译部署之前,务必要先执行godep save -r ./...尽管你的应用可能没有任何外部依赖。

每次新增一个原文件时,你都应该再次执行 godep save -r ./… 以确保你应用的相关依赖都被重写与记录。

那么如何更新外部依赖呢?

更新外部依赖库也是很简单的,以下的两行命令即可搞定了。

go get -u [dependency]
godep update [dependency]

注意更新后别忘记push到代码仓库,然后再次编译部署。


相关阅读

2 Likes