Golang包管理工具之govendor
简介在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
为什么要使用govendor
在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
govendor简介
golang工程的依赖包经常使用go get命令来获取,例如:
go get github.com/kardianos/govendor
会将依赖包下载到GOPATH的路径下。
常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。
govendor安装
Github地址:https://github.com/kardianos/govendor
go get -u github.com/kardianos/govendor
govendor使用
- 1、初始化
需要进入到项目目录,使用下面的命令进行初始化:
govendor init
会出现一个vendor文件夹,里面的vendor.json 文件用来记录依赖包的信息。
- 2、添加本地已有的库(必须是存在的GOPATH中的库)
govendor add github.com/jinzhu/gorm
- 3、移除
govendor remove github.com/jinzhu/gorm
- 4、从远程拉取库(类似于go get)
govendor fetch github.com/jinzhu/gorm
- 5、将GOPATH中本工程使用到的依赖包自动移动到vendor目录中(通过add直接获取的,可能相关依赖包是没有的,就需要执行该命令)
govendor add +external
- 6、查看当前项目中的包
govendor list
注意:项目必须建立在GOPATH的src中,否则go找不到对应的项目,当我们使用govendor后,会自动找到该项目下的vendor目录去获取相应包。