Godep的基本使用

###关于Godep 发现好多golang项目都使用到[godep](https://github.com/tools/godep)作为包管理的工具,像比较大型的项目,比如kubernetes这种,都是使用的是godep来进行依赖管理操作的了,小的项目貌似可以直接采用go install同时完成编译以及下载依赖的工作,但是大的项目可能不是这么方便,Godep就比较有必要了,看了一下有点像maven的感觉,这里记录一下基本的操作。

首先是安装

由于网络的问题,goget的时候有一个包会找不到,网上有好多替代的解决方案,比如说这个,注意一点,这个文章里面说的tools文件夹,指的是在GOPATH/src/github.com/golang 下面的文件夹,注意不要弄混了。

基本的使用

godep save

比如说建立了一个基本的项目,就拿beego的示例项目来说。这里又一点要注意,没有使用版本控制的时候,go save是不成功的,会报类似如下的错误:

godep: error while inspecting "/Users/Hessen/goworkspace/src/testBee/bapi": directory "/Users/Hessen/goworkspace/src" is not using a known version control system

具体的原因这个文章讲解的比较详细。总是先要使用版本控制工具将整个项目初始化一下。之后 godev save 就可以看到在当前的目录下生成了Godeps的文件夹,里面有_workspace文件夹,存储着依赖包的源码,还有Godeps.json文件,具体描述了依赖关系。这里比较好的地方就是不用像maven那样自己去编辑对应的依赖包的描述文件,完全是根据版本控制工具自动生成的。

godep restore

restore 的操作和go save的操作是相反进行的,比如git 上一个使用godep的项目,pull下来之后,使用godep restore就可以把Godeps/Godeps.json中列出的依赖拷贝到本地的GOPATH下面。有一个问题要注意,如果之间已经有安装过相关的包,并且进行了一些修改,进行过一些pull,request的操作,可能会有一些git的相关错误。

相关的介绍godep的博客

http://tonybai.com/2014/10/30/a-hole-of-godep/

http://studygolang.com/articles/2147

posted @ 2015-06-24 10:49  hessen  阅读(5141)  评论(0编辑  收藏  举报