虽然启用了 go mod,但是不像 Java 那样有一个非常强大的中央仓库 maven,版本迭代和可靠性都是有保障的
go 虽然可以从 github 上虽然可以直接拉包下来,但是因为有的作者没打 tag,拉取的版本号显示的非常奇怪
而且如果哪天某个 lib 的作者一不高兴删了自己的仓库,那要部署代码的时候,就两眼懵逼了
1
ysn2233 2019-07-18 00:35:52 +08:00 via iPad
当然不好,从没见人说 go 的包管理好话
|
2
yegle 2019-07-18 02:02:40 +08:00
你看国内互联网大公司谁没有自建 maven 仓库?为什么?
|
3
fcten 2019-07-18 09:21:56 +08:00
如果是企业级项目一般不会依赖 github
|
4
VDimos 2019-07-18 09:25:28 +08:00 via Android
你去看看 gopath 在 issue 上骂得多凶
|
5
lihongjie0209 2019-07-18 10:20:49 +08:00
@yegle
1. 作为 maven 主库的缓存代理, 由于网络原因, maven 主库下载速度比较慢 2. 作为本地私有仓库, 公司的代码原则上不允许推到公共仓库. 就像有 GitHub 也要自建 gitlab 一样 上述原因没有一个是因为 maven 这种包管理方式有问题 |
6
janxin 2019-07-18 10:29:53 +08:00
中央仓库就不会删除包了吗?隔壁 NPM 的教训忘记了吗?
为什么有 go mod 还会有这种烦恼?其实一样可以自建中央仓库的呀 |
7
jingxyy 2019-07-18 10:35:38 +08:00
tag 都没有 搞不好哪天就没了的库你敢用么
|
8
ralph79 2019-07-18 10:49:54 +08:00
没有绝对的好不好。
|
9
u823tg 2019-07-18 11:30:52 +08:00
go1.13 会默认 go proxy https://proxy.golang.org/
|
10
eslizn 2019-07-18 13:45:30 +08:00
你说的删除的问题,只要存过代码,可以起个新的 repo 后 go mod replace 解决
|
12
guokeke 2019-07-18 17:10:35 +08:00
可以先 fork 下。
|
13
tyrantZhao 2019-07-18 17:55:34 +08:00
go 的包管理一塌糊涂
|
14
liulaomo 2019-07-18 22:16:07 +08:00
还好,和集中式仓库模式相比各有所长
|
15
layxy 2019-07-23 08:58:39 +08:00
企业项目会将依赖放入自己的 pkg 里吧,不会直接引用 github 等外部包,除了 go 官方包
|
16
reus 2019-07-23 13:28:31 +08:00
删就删啊,只要你用过一次,你本机上就存了的,你可以另外开一个,传上去,然后在 go.mod 里写一行 replace
广泛使用的代码,肯定每个使用者机器上都存了的,想彻底删除,是不可能的,何必担心删库 另外还有代理,代理也会缓存代码,删库也未必影响 maven 叫“中央仓库”,那 github 为什么就不能叫“中央仓库”? 你可以 vendor,可以 fork,可以自建 git 服务,可以自建代理缓存,方式有很多。不要认为就只有一种模式。 |
17
abcbuzhiming 2019-07-29 11:00:36 +08:00
@janxin NPM 那种管理一片混乱的所谓中央仓库是不能作数的
|
18
abcbuzhiming 2019-07-29 11:02:18 +08:00
@reus 中央仓库存在的意义是信任和稳定,如果连这都不需要那你的确不需要中央仓库,但是中央仓库的存在为大量的人节约了时间和精力。不是每个人都愿意像你这样折腾的
|
19
reus 2019-07-29 11:20:28 +08:00
@abcbuzhiming 分布式仓库就没有信任和稳定了? maven 就不会倒闭? npm 还被投过毒,中央仓库就一定稳定和值得信任,我认为是假命题。github 也没有浪费谁的时间精力吧?我用 github 做仓库也没有啥折腾的。
go 的仓库模式,就等于 git、hg 等版本管理工具的模式,你不习惯可以不用,但我们用得好好的。 |
20
janxin 2019-07-29 11:57:27 +08:00 via iPhone
@abcbuzhiming 中央仓库的信任问题怎么解决?上传了恶意包怎么办? npm 会出现的问题 maven 怎么保证不出现的?
|