• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用govendor灵活管理Go程序中的依赖包

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

业务痛点

使用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的相关信息,这说明新增依赖包管理已经成功了。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
交叉编译Go程序发布时间:2022-07-10
下一篇:
go-spew golang最强大的调试助手,没有之一发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap