Go代码版本控制中的 glide 与 govendor

声明

通过 go get 生成对应文件的二进制文件,在任意目录下,可能无法直接使用 glide 的命令。我们可以通过把 golang 的 $GOPATH/bin 目录加入系统的 $PATH 路径下,即可正常使用。

安装

go get github.com/Masterminds/glide
go get github.com/kardianos/govendor

使用

glide :

  • 直接输入 glide 查看命令详情,通过这条命令查看 glide 的全局配置(GLOBAL OPTIONS),例如:[$GLIDE_HOME]
  • mirrors.yaml: 可以做一个地址映射,把自己需要对应的下载地址写一个目录,放在 .glide 文件夹下,可以 glide 命令查看 [$GLIDE_HOME] 就知道 .glide 路径。mirrors.yaml 格式如下:
    repos:
    - original: https://github.com/golang/net
      repo: [email protected]:gopackages_golang/net.git
      vcs: git
  • glide init :初始化,生成glide.yaml 和 glide.lock
  • glide up :升级 成功后会把对应的安装包安装在 vendor

govendor:

  • goverdor --list 查看整个工程的依赖关系(状态缩写缩写如下)
    • l:local
    • e:external
    • v:vendor
    • p:program
    • m:missing
    • u:unused
  • govendor init 初始化,在 vendor 下生成对应的 vendor.json
  • govender add 把本地配置依赖添加到 vendor 下,可直接通过状态缩写添加,例如:govendor add +e 添加所有状态缩写为 e 的依赖

总结

个人偏向使用 govendor

  • govendor 需要首先要保证自己本地依赖路径都正确的配置好。
  • glide mirror 有一个问题就是无法正确的处理 subpackage,比如我想下载 http://golang.org/x/net/http2,这个 mirror 就没有办法设置了,设置成 http://github.com/golang/net 会把这个项目覆盖到 http2 目录,设置为 http://github.com/golang/net/http2 又会报找不到 vcs 文件信息。

你可能感兴趣的:(Go代码版本控制中的 glide 与 govendor)