在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
业务痛点 使用Go开发程序的过程中,为了方便开发,往往会引用很多标准库或者第三方的依赖包,第三方依赖包往往比标准库功能更全面更强大更接地气,那么如何管理众多的第三方依赖包呢?如何更新其版本?在不需要时,如何删除掉呢?如果有工具能帮助解决这个问题就好了,好在Go中前辈们其实早就想到了这个痛点,有个第三方的库govendor就能完美解决这些问题,让我们更舒心地使用依赖库,只需要很少的几行命令就能搞定这些。
安装 只需要下面的一行命令,就能将govendor安装到$GOPATH的bin目录下面 go get -u -v github.com/kardianos/govendor 如果命令行找不到该命令,需要将$GOPATH/bin加入PATH变量中去。在Linux上,可以编辑~/.bashrc文件,在Mac上煤科院编辑~/.bash_profile文件,以我目前Mac开发机为例,我的$GOPATH为/Users/tao/go,我只需在前面的文件中加入 vim ~/.bash_profile 添加下面的一行 export PATH=/Users/tao/go/bin:$PATH 使用下面的命令使之生效 source ~/.bash_profile 查看是否生效 echo $PATH 然后在命令行执行govendor -h就能看到govendor命令可以灵活使用了。
govendor的最大的好处 Go从1.5版本之后,就默认优先使用vendor子目录中的依赖库,而不是$GOPATH/src中的依赖包,这样我们可以把工程源码到处复制,使用时直接go build就可以了,不需要考虑一大堆第三方依赖包的管理问题。
使用govendor管理第三方依赖包 现在进入你的Go工程目录下面,依次执行下面的命令,假设我现在的项目工程名为clairvoyance: 初始化vendor目录 govendor init 此时会在当前工程目录(顶层)下面生成一个子目录vendor,里面有个文件vendor.json记录了一些模板信息。 govendor add +external 它会将你之前单独安装到$GOPATH/src目录下的所有依赖包都复制到本项目的vendor下面,并且在vendor.json列出详细的清单。如果$GOPATH/src目录下面没有依赖包,会解析当前项目中的go文件来将所有的依赖库先go get下来,存放到vendor下面。 查看你的工程中的第三方包列表 govendor list 简要列出各依赖包列表,实操发现,这个命令比下面的govendor list -v fmt命令显示的包更全面一些。 格式化查看 govendor list -v fmt 可以更详细地查看各种包的依赖关系,但是有些包未显示出来。 添加或更新包到本地vendor目录 govendor fetch 实操验证 后来再新增一个第三方依赖包 govendor fetch github.com/ClickHouse/clickhouse-go 发现vendor子目录下面的vendor.json中的确新增了clickhouse的相关信息,这说明新增依赖包管理已经成功了。
|
请发表评论