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
go get -u github.com/kardianos/govendor
从$GOPATH 中添加所有依赖包
govendor add +external
查看使用的包列表
govendor list -v fmt
从线上远端库添加或更新最新的依赖包
govendor fetch golang.org/x/net/context
从线上远端库添加或更新标签或分支等于v1的依赖包
govendor fetch golang.org/x/net/context@=v1