govendor 的安装
建立项目
如果以前安装过 govendor 可直接跳过本节,从建立工程开始看 govendor 的使用。
- 我们建立一个项目
- 安装
govendor
go get github.com/kardianos/govendor
运行完毕后,会发现出来一个bin和src目录,里面内容如下
建立工程
我们在项目文件夹的src目录下,建立hello项目
初始化vendor目录
govendor init
- 安装一个依赖,这里以
gin
框架为例子。govendor fetch github.com/gin-gonic/gin@v1.3
- 从本地添加依赖到vendor
govendor add +e
Q:什么时候用呢?
A:比如刚下载的一个项目,它不是govendor来做的依赖,我们必须先go get下载相应的依赖包后,然后再运行init
与此条命令,运行完后它会将本项目使用到的依赖包自动从 go get下载的地方转移动到vendor目录中,并且关联好了vendor.json文件。此时就使用govendor来维持依赖了,那么我们 go get下载的依赖包就可以删除了。
说明:如果本地GOPATH没有依赖包,
- 处理 GIT
和pakeage.json同样, 我们需要将这个vendor.json添加到GIT, 但忽略vendor下的其他文件
```shell .gitignore
/vendor/* !/vendor/vendor.json ```
- 拉取依赖到 vendor
其他人可以使用 vendor.json 重新安装依赖包到 vendorgovendor sync
常用命令
常见的命令如下,格式为 govendor COMMAND
。
命令 | 功能 |
---|---|
init |
初始化 vendor 目录 |
list |
列出所有的依赖包 |
add |
添加包到 vendor 目录,如 govendor add +external 添加所有外部包 |
add PKG_PATH |
添加指定的依赖包到 vendor 目录 |
update |
从 $GOPATH 更新依赖包到 vendor 目录 |
remove |
从 vendor 管理中删除依赖 |
status |
列出所有缺失、过期和修改过的包 |
fetch |
添加或更新包到本地 vendor 目录 |
sync |
本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本 |
get |
类似 go get 目录,拉取依赖包到 vendor 目录 |
—help | 列出所有命令 |
比如:
- 增加包,搜add,会得到add和fetch这2个命令。
- 更新包,搜update,会得到update和fetch这2个命令。
- 删除包,搜remove,得到remove这个命令。
- 查看已经依赖的包,搜list,得到list、status、license命令,而符合你的是list,并且知道了status能列出过期的包。
具体来看,这些包可能的类型如下:
QA
Q:Error: Package “XXX” not a go package or not in GOPATH.
A:https://github.com/kardianos/govendor/issues/400
感谢
https://www.cnblogs.com/liuzhongchao/p/9233177.html
https://www.jianshu.com/p/aa5ebbd61754
https://www.jianshu.com/p/88669ba57d04