美文网首页Golang
使用govendor管理包依赖

使用govendor管理包依赖

作者: 星落纷纷 | 来源:发表于2019-05-07 04:42 被阅读0次
本文无关(Go1.11后推荐使用Go mod管理包依赖,不建议再使用vendor和GOPATH)

Go的vendor目录有什么用?

GOPATHGOROOT 一样,用来查找包依赖,工程会优先使用vendor目录下的包。优先级:
vendor > 更上级目录的vendor > GOPATH/src > GOROOT/src

当多个工程用到不同版本的同一个包时,会有冲突,vendor目录用于管理当前工程用到的依赖包的版本,避免和其它工程冲突

使用govendor插件管理包依赖

安装govendor

go get -u github.com/kardianos/govendor

注意:安装后govendor可执行文件将生成在第一个GOPATH/bin目录下

初始化

cd [your dir]
govendor init

将在your dir目录下生成vendor目录和vendor/vendor.json文件
你可以配置vendor.json文件,比如编辑“ignore”字段来忽略掉某些目录下的包(这些包将不会加到vendor目录下),例如

{
    "comment": "",
    "ignore": "test github.com/xxx/",
    "package": [],
    "rootPath": "github.com/fenfenbingo/bingosession"
}

这里将test包github.com/xxx/目录下的所有包忽略。注意,如果改成"github.com/xxx"则只有"github.com/xxx"包被忽略。

从GOPATH添加依赖包到vendor目录

govendor add +e

然后发现vendor.json文件里多了依赖包的信息,vendor目录下多了依赖包。

将依赖同步给其它项目人员

我们这里只提交vendor.json文件,在.gitignore文件添加

/vendor/*
!/vendor/vendor.json

其它项目人员拉取vendor.json文件后

govendor sync

如此会从远程仓库拉取vendor.json中记录对应版本的依赖库文件

更多命令请参考govendor官方文档

相关文章

网友评论

    本文标题:使用govendor管理包依赖

    本文链接:https://www.haomeiwen.com/subject/nxhsoqtx.html