不懂就问,关于 Go 的包管理

2019 年 6 月 13 日
 gramyang

Go 官方推荐,很多人也爱这么写,就是在 import 时直接写 github 地址。不同于 Java 里面下载 jar 包,而是实时从 github 上下载代码。

问题来了,如果 github 上的代码被修改,或者更新了,导致功能变更或者代码结构变更怎么办? go 可以像 Java 一样导入某一个版本的代码吗?

5263 次点击
所在节点    Go 编程语言
30 条回复
shawndev
2019 年 6 月 13 日
go mod + goproxy
lhx2008
2019 年 6 月 13 日
@Hellert
@zealic
gomod 如果本地有一个工具包要怎么搞,先发版到私有仓库吗,怎么解决耦合问题
randm
2019 年 6 月 13 日
体验过 go mod 后又回到 GOPATH 主要方便
Hellert
2019 年 6 月 13 日
@lhx2008 go.mod 文件中用 replace 指令
blless
2019 年 6 月 13 日
goproxy.cn 速度更快一点
abmin521
2019 年 6 月 13 日
至今没解决两个包依赖一个库的不同版本 那能怎么办 fork 呗
还有似乎不能清理?
chennqqi
2019 年 6 月 13 日
@Hellert +1 gopath 简单 go get 通用
Muninn
2019 年 6 月 13 日
@gramyang 不好意思,我说的不太对。 用了 go module 后,在最后一次 go test 或者 go build 自动补完 go.mod 文件后提交,是会锁定所有版本的。

我当时是想说我没事干就 go get -u,也并没有崩过,这是因为 go mod 的依赖版本冲突后版本选择大的那个版本导致的,知名的库一般都会比较注意,都是向前兼容的。
fengyj
2019 年 6 月 13 日
现在都使用 go mod 搭配 GOPROXY=https://goproxy.io
aimerforreimu
2019 年 6 月 17 日
https://go.likeli.top 这个速度也很快~

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

https://study.congcong.us/t/573409

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

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

© 2021 V2EX