从 v1.11 Go 开始添加了对模块的支持。命令
go mod init <package name>
go build
将生成 go.mod
和 go.sum
包含包依赖项的所有已找到版本的文件。
如果模块没有任何版本,则使用该模块的最新提交。如果模块确实有版本,则最新的版本将被选为依赖项。
然而,有时我需要的功能尚未在已发布的版本中,而是来自该版本之后的提交。如何设置 go.mod
不指向模块的发布,而是指向模块存储库中的特定提交?
看起来我可以在 go.mod 中手动完成
module /my/module
require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)
其中 v0.0.0
不对应于最后发布的发布标签, 20181121201909
将是一个提交时间戳和 af044c0995fe
将是提交哈希?这些信息是应该手工查找和输入,还是有更好的方法?
原文由 dimus 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需“获取”您想要的提交哈希:
‘go get’ 将正确更新依赖文件(go.mod、go.sum)。
更多信息: https ://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies