对于习惯了 Java 和 Python 的程序员来说,对于包的管理都有着比较大的期望,当然,虽然 Java 和 Python 的包管理也是存在着一些问题,但是相比起 golang 来说,那也是好得多了。

go get -dgo get

golang 默认包管理

go get -d
1go get
  • 当前包下的 vendor 目录。
  • 向上级目录查找,直到找到 src 下的 vendor 目录。
  • 在 GOPATH 下面查找依赖包。
  • 在 GOROOT 目录下查找

glide

好像使用 vendor 并没有太多得帮助到我们,一个显而易见的好处就是团队协作方面是不需要担心版本不一致了;然而,问题也很明显,我们平时开发中,每每新建一个项目就需要这么搞一遍也是挺糟心的。程序员总是懒得,所以,有人受不了这些繁琐事了,决定自己搞点大事情,所以就有了很多社区的 package manager tool,我认为目前比较有气候的是 godepglide。在浅尝了两个之后,我觉得 glide 更符合我对于 package manager tool 的期待,但是,并没有完全吻合,只是说够用了。

brew install glideglide initglide create
glide up

如果你需要指定版本信息,除了编辑 glide.lock 这个粗暴的方法之外,官方建议使用一个更加友善的方式就是使用这条命令:

$ glide get "github.com/gin-gonic/gin#v1.2"
#

Reference