golang没有提供包管理工具,只是提供了一个全局的包管理。不过对于一些项目来说,需要一个包管理工具,经过一番google后,最后选择了godep这个工具。
对于这个工具的使用觉得并不是很满意。经常有一些问题,不知道如何解决。有时候昨天不成功,今天有Ok了。真是搞到头大。目前对于一些问题还是不太确认是什么问题。估计是对这个工具的理解不够。
这里讲一下使用技巧和一些注意事项。
1、建立依赖json文件。在项目的根目录下运行下边命令。
godep save 或者用 godep save ./…
注意你需要在这个目录运行go build 可以成功编译。就可以。另外你需要把文件Godeps/Godeps.json添加到代码管理中,那样才方便别人下载项目和更新依赖包。,godep save 同时把依赖包的代码都copy到Godeps/_workspace/src目录下,而且把依赖包的git管理目录.git去掉了。你可以把这些依赖包一并上传到你的项目代码管理中,这样别人下载你的代码库的时候就可以直接编译,不需要下载更新依赖包。但是你的代码库会相对大一些,同时也会出现一些其他一些版本问题。
2、下载依赖包
godep restore
这个命令是根据Godeps/Godeps.json文件把项目的依赖包下载到$GOPATH目录下。另外看一看下边的脚本,千万别学他。这个脚本我是参考wandoulabs/codis的项目中的一个编译脚本编写的。就因为这个,我踩坑了。
make clean
echo “downloading dependcies, it may take a few minutes…”
# Test godep install, steal it from LedisDB project 😛
godep path > /dev/null 2>&1
if [ “$?” = 0 ]; then
GOPATH=`godep path`:$GOPATH
godep restore
go build || exit $?
exit 0
fi