刚由 PHP 转 Go,Go 的包管理搞得一头雾水。 刚开始用 dep,后来发现 G 家在去年二月份的时候发布了 vgo。 vgo 是亲儿子,而且有些开源项目都开始使用 vgo 了,是不是应该转用 vgo 呢? 现在大家都用什么啊?有哪些坑?推荐哪个?
![]() | 1 zhengxiaowai 2019-02-13 11:29:44 +08:00 初学而已,用哪个都差不多 dep 也是官方的 |
2 neoblackcap 2019-02-13 11:42:50 +08:00 因为 Go 程序是静态编译的,所以你最简单的选择就是将所有要用的库放进去你的版本库里面就可以了。vgo, dep 我们都可以理解他们是官方的试验,他们也没有完全想好该怎么做依赖管理。 PS:两者一定要选一个的话,我选 dep,至少问题少一些,库的支持更好一些。 |
3 silenceshell 2019-02-13 11:50:58 +08:00 via Android ![]() 1.11 可以用 go mod 了,唯一官方工具 |
![]() | 4 Fitz 2019-02-13 11:53:46 +08:00 直接 go mod 吧 从官方博客 https://blog.golang.org/modules2019 看 go mod 将在 1.13 默认开启并废弃 GOPATH 就一般使用来说 go mod 没什么问题的 |
5 Hellert 2019-02-13 11:55:58 +08:00 via Android go.mod 是唯一选择,其他都是过去式了。 |
![]() | 6 index90 OP @neoblackcap 嗯,我也偏向于 dep,有点类似 composer,相对较熟悉 |
![]() | 7 itfanr 2019-02-13 12:07:27 +08:00 via Android @silenceshell 同意 |
![]() | 8 AlphaTr 2019-02-13 12:14:04 +08:00 dep 是 vgo (go mod) 之前的包管理,还是存在去关心设置 GOPATH 的问题,go mod 好用些,除非用到 1.11 以下版本,否则无脑推 go mod |
![]() | 9 xiaket 2019-02-13 12:18:05 +08:00 go mod 很爽 |
10 frye 2019-02-13 12:34:11 +08:00 go mod 用完之后就会发现秒杀各种 php 的 composer 啥的包管理 |
![]() | 11 thet 2019-02-13 12:48:00 +08:00 via Android 推荐 go mod,已经在生产环境用了,还算比较方便了 |
![]() | 12 shynome 2019-02-13 13:26:15 +08:00 go mod 的 replace 贼好用, 能无缝替换掉一个包 比如我就把 v2ray-core 替换成了只包含 grpc 调用代码的包 https://github.com/shynome/v2ray-go-grpc-sdk |
13 6ufq0VLZn0DDkL80 2019-02-13 13:33:47 +08:00 为啥要搭建私有包仓库 |
![]() | 16 awhane 2019-02-13 15:23:19 +08:00 @index90 你这个需求扔到 gitlab 也可以啊。 其实可以通过 git server 和 nginx 搭建一个 repo,我们 CI+docker 这样跑的贼快。 |
![]() | 17 index90 OP @awhane 嗯嗯,我们的代码就是放在 gitlab 上的,貌似给 gitlab 配置一个域名就可以了? 主要是不懂 go get 的原理,有没有资料分享一下? |
![]() | 18 4BVL25L90W260T9U 2019-02-13 15:28:15 +08:00 1. GOPATH 是官方搞出来的玩意儿,强制所有代码都放到 GOPATH 里面,非常恶心。 2. 大家都对 GOPATH 不爽,于是开发了不少第三方工具,dep 是第三方开发的,但是之前有 Go 官方站台。 3. Go 官方团队自己也发现问题了,于是开发了 vgo,并且宣布不要 dep 了。 大概就是这样。 |
![]() | 19 prolic 2019-02-13 15:30:32 +08:00 go mod(vgo)才是现在及未来的唯一指定官方包管理 |
20 6ufq0VLZn0DDkL80 2019-02-13 17:51:12 +08:00 @index90 哦,我理解错了,我以为楼主要搞个全部包的镜像 |
![]() | 21 RubyJack 2019-02-13 18:16:21 +08:00 go mod,replace 真的好用 |
![]() | 22 owenliang 2019-02-14 10:15:50 +08:00 到底用啥,我都学不动了。 |
23 psrazil2008 2019-02-15 23:28:05 +08:00 1. go mod 需要 1.11 和 1.11 后的版本,在 1.11 之前的建议用 dep,从 dep 到 go mod 是支持迁移的当然 vgo 也行,我们采坑后认为 dep 比 vgo 好用,所有现在线上就保留 go mod 和 dep 两种,应对新旧版本。 2.关于私服,go mod 有 https://github.com/gomods/athens 能上 go mod 就用 go mod |
24 zhd173 2019-03-07 13:24:32 +08:00 我目前用的 dep,但是跟喜欢 go mod。目前不用 vgo 主要是 emacs 相关的包代码补全、import 会有各种各样的小问题。写代码不是很爽,等支持的好点了,就切 go mod |