使用vendor管理go第三方包

安装verdor

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

记得将$GOPATH/bin加入PATH

verdor使用

goverdor init #先进入项目根目录再执行,初始化后生成verdor目录
govendor add +external #添加所有外部包 如果没有go get需要先go get

添加包

govendor add git.oschina.net/axengine/utils/logs

更新包

govendor update git.oschina.net/axengine/utils/logs

移除包

govendor remove git.oschina.net/axengine/utils/logs

go 1.6版本以上则可以直接不编译,不用设置GO15VENDOREXPERIMENT=1,go会自动先找项目目录下verdor目录里的外部包。

包类别

状态缩写状态含义
+locall本地包,即项目自身的包组织
+externale外部包,即被 $GOPATH 管理,但不在 vendor 目录下
+vendorv已被 govendor 管理,即在 vendor 目录下
+stds标准库中的包
+unusedu未使用的包,即包在 vendor 目录下,但项目并没有用到
+missingm代码引用了依赖包,但该包并没有找到
+programp主程序包,意味着可以编译为执行文件
+outside外部包和缺失的包
+all所有的包

verdor命令

命令功能
init初始化 vendor 目录
list列出所有的依赖包
add添加包到 vendor 目录,如 govendor add +external 添加所有外部包
addPKG_PATH 添加指定的依赖包到 vendor 目录
update从 $GOPATH 更新依赖包到 vendor 目录
remove从 vendor 管理中删除依赖
status列出所有缺失、过期和修改过的包
fetch添加或更新包到本地 vendor 目录
sync本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本
get类似 go get 目录,拉取依赖包到 vendor 目录