go get 的缺陷
能拉取源码的平台很有限,绝大多数依赖的是 github.com
不能区分版本,以至于令开发者以最后一项包名作为版本划分
依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get
只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor)
glide 的功能
持久化依赖列表至配置文件中,包括依赖版本(支持范围限定)以及私人仓库等
持久化关系树至 lock 文件中(类似于 yarn 和 cargo),以重复拉取相同版本依赖
兼容 go get 所支持的版本控制系统:Git, Bzr, HG, and SVN
支持 GO15VENDOREXPERIMENT 特性,使得不同项目可以依赖相同项目的不同版本
可以导入其他工具配置,例如: Godep, GPM, Gom, and GB
安装glide
$ go get github.com/Masterminds/glide
$ go install github.com/Masterminds/glide