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

本文介绍了Go语言中管理代码依赖的两个工具——glide和govendor。详细阐述了如何安装和使用这两个工具,包括glide的全局配置、 mirrors.yaml的设置,以及govendor的依赖关系查看和管理。文章最后分享了作者在使用过程中的偏好和遇到的问题,特别是对git submodule处理的困扰。

声明

通过 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: git@10.20.30.40: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 文件信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值