话说你们 Go 项目的依赖管理是怎么做的?

2018-05-04 16:11:22 +08:00
 mss0

开始用的 dep,后来发现同一个库使用 dep ensure -add 安装和使用 go get -u 安装文件的内容会不一样。

使用 go get 直接把包安到了$GOPATH/src 目录下,那多人协作开发的时候怎么去保证依赖库的版本一致呢?

7556 次点击
所在节点    程序员
22 条回复
xrlin
2018-05-04 16:19:13 +08:00
现在 1.10 版本以上有 vgo
NoMustard
2018-05-04 16:19:37 +08:00
dep ensure 啊 不是有 Gopkg.toml 来保证依赖一致么
Tinet
2018-05-04 16:20:35 +08:00
用的 govendor
janxin
2018-05-04 16:20:51 +08:00
dep ensure 如果是有 semver 的库会使用 semver 版本,go get 使用的是 master 分支。

你可以通过调整 Gopkg.toml 指向 master 分支
prolic
2018-05-04 16:25:03 +08:00
我觉得 github 包不能精确到最后一次 commit 的话怎么做都没法严格保证一致吧,还是塞到 vendor 传 git 上比较靠谱
twogoods
2018-05-04 16:32:08 +08:00
go 官方是时候搞个统一的依赖管理了啊
hyuwang
2018-05-04 16:52:40 +08:00
vgo 不错 不过我来推荐个小众的 gb + gb vendor
跟反人类的 GOPATH 说再见
helloworld12
2018-05-04 16:59:04 +08:00
git,把整个 gopath 放在 git 里面了
susecjh
2018-05-04 17:53:04 +08:00
godep
kkk330
2018-05-04 18:12:49 +08:00
glide
iappled
2018-05-04 18:35:22 +08:00
@hyuwang gopath 太难用,gb 不错
puperSB
2018-05-04 18:38:00 +08:00
govendor 或者 dep
xio
2018-05-04 19:50:09 +08:00
vendor 入库
mritd
2018-05-04 22:08:52 +08:00
@Tinet 哇,我经常听你头像小姐姐的歌😉
mritd
2018-05-04 22:09:16 +08:00
glide
nino
2018-05-04 22:12:37 +08:00
vgo 只支持 GitHub 啊
zacharychangzc
2018-05-04 23:03:37 +08:00
dep+vendor 上传 git
Muninn
2018-05-05 00:37:23 +08:00
以前用 glide 现在就是 dep 啊

只是你不会用 dep 而已。。。
devtiange
2018-05-05 08:03:30 +08:00
可惜 gb 已经常年不更新了. GOPATH 确实是 go 里最最傻逼的东西.
robertzhouxh
2018-05-05 10:19:06 +08:00
govendor 妥妥的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX