govendor 的安装

建立项目

如果以前安装过 govendor 可直接跳过本节,从建立工程开始看 govendor 的使用。

  1. 我们建立一个项目

image.png image.png

  1. 安装 govendor
    go get github.com/kardianos/govendor
    运行完毕后,会发现出来一个bin和src目录,里面内容如下
    go1.5 :go vendor - 图3

此时我们的项目文件夹已经创建好了,接下来我们创建工程文件夹

建立工程

  1. 我们在项目文件夹的src目录下,建立hello项目
    go1.5 :go vendor - 图4

  2. 初始化vendor目录
    govendor init

  3. 安装一个依赖,这里以 gin 框架为例子。
    govendor fetch github.com/gin-gonic/gin@v1.3
    image.png
  4. 从本地添加依赖到vendor
    govendor add +e
    Q:什么时候用呢?
    A:比如刚下载的一个项目,它不是govendor来做的依赖,我们必须先go get下载相应的依赖包后,然后再运行 init 与此条命令,运行完后它会将本项目使用到的依赖包自动从 go get下载的地方转移动到vendor目录中,并且关联好了vendor.json文件。此时就使用govendor来维持依赖了,那么我们 go get下载的依赖包就可以删除了。

说明:如果本地GOPATH没有依赖包,

  1. 处理 GIT
    和pakeage.json同样, 我们需要将这个vendor.json添加到GIT, 但忽略vendor下的其他文件
    ```shell .gitignore

/vendor/* !/vendor/vendor.json ```

  1. 拉取依赖到 vendor
    其他人可以使用 vendor.json 重新安装依赖包到 vendor
    govendor 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 列出所有命令

比如:

  1. 增加包,搜add,会得到add和fetch这2个命令。
  2. 更新包,搜update,会得到update和fetch这2个命令。
  3. 删除包,搜remove,得到remove这个命令。
  4. 查看已经依赖的包,搜list,得到list、status、license命令,而符合你的是list,并且知道了status能列出过期的包。

具体来看,这些包可能的类型如下:
image.png


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