govendor是类似于npm的一个包管理工具…

该工具将项目依赖的外部包拷贝到项目下的 vendor 目录下,并通过 vendor.json 文件来记录依赖包的版本,方便用户使用相对稳定的依赖。

基本说明

状态 缩写状态 含义
+local l 本地包,即项目自身的包组织
+external e 外部包,即被 $GOPATH 管理,但不在 vendor 目录下
+vendor v 已被 govendor 管理,即在 vendor 目录下
+std s 标准库中的包
+unused u 未使用的包,即包在 vendor 目录下,但项目并没有用到
+missing m 代码引用了依赖包,但该包并没有找到
+program p 主程序包,意味着可以编译为执行文件
+outside 外部包和缺失的包
+all 所有的包

指令

指令 含义
init 创建 vendor 文件夹和 vendor.json 文件
list 列出已经存在的依赖包
add $GOPATH 中添加依赖包,会加到 vendor.json
update $GOPATH 升级依赖包
remove vendor 文件夹删除依赖
status 列出本地丢失的、过期的和修改的package
fetch 从远端库添加或者更新 vendor 文件中的依赖包
sync 本地存在vendor.json 时候拉取依赖包,匹配所记录的版本
get 等同于go get

常用指令说明

安装govendor

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

$GOPATH 中添加所有依赖包

1
govendor add +external

查看使用的包列表

1
govendor list -v fmt

从线上远端库添加或更新最新的依赖包

1
govendor fetch golang.org/x/net/context

从线上远端库添加或更新标签或分支等于v1的依赖包

1
govendor fetch golang.org/x/net/context@=v1