govendor的安装与实践

govendor的安装与实践

govendor是Golang的依赖包管理工具,它的出现可以避免不同用户在clone同一个项目后从外部获取不同依赖库版本的问题。govendor会将项目需要的依赖包添加到项目的vendor目录下,并且该目录中vendor.json文件会保存添加的依赖包的路径等信息。
Golang项目中的go文件在查找依赖的顺序是,先在vendor中查找,vendor没找到然后在GOPATH中查找,都没找到最后在GOROOT中查找。

  • govendor的安装与基本使用
  • govendor使用中出现的问题

一、govendor的安装与基本使用

govendor在安装前首先要保证有Golang环境,其中Goland的安装配置和Golang的配置可以参考我之前的一篇文章。
然后在终端安装govendor,govendor会安装在Golang的配置的GOPATH的目录下。

go get -u -v github.com/kardianos/govendor

安装好了govendor之后需要在配置文件中的PATH中添加(Mac下的配置)

:$GOPATH/bin

如果需要使用vendor的项目原本没有vendor,那么需要在该项目的目录下创建vendor

govendor init

之后如果需要添加依赖包,可以通过以下两种方式添加

govendor fetch 依赖包路径
govendor add 依赖包路径

添加完成之后会看到在项目中会出现添加的依赖包,并且vendor.json中会添加该依赖包的信息。

二、govendor使用中出现的问题

1.govendor在终端无法识别出
这样的问题基本不是没有安装govendor,而是环境变量的配置问题。正确修改了环境变量之后需要重启电脑后才会生效。如果这些操作之后还是没有解决,那就需要重新打开配置文件看看了。

2.govendor在项目中没有正常添加依赖包
网上有资料解释fetch和add的区别:

govendor fetch 依赖包路径
#从远端库添加,或者更新 vendor 文件中的依赖包
govendor add 依赖包路径
#从 $GOPATH 中添加依赖包,会加到 vendor.json

有一个比较尴尬的问题是,如果需要添加依赖包只在墙外有,fetch搞不定算正常,尽管我有连外网,但是我$GOPATH下已经有golang.org/x/text,但是add还是搞不定。。。
网上找到了一个网站https://gopm.io/,可以下载具体的依赖到本地,解压后还得复制到vendor的指定路径才行。

你可能感兴趣的:(govendor,Golang,GoLang)