Nat*_*tWH 1 version-control module go
撇开这是否是一个好主意,有没有一种方法可以构造go.mod以便始终使用最新版本的依赖项?
我发现的一种方法是,例如,
require (
gonum.org/v1/gonum latest
)
Run Code Online (Sandbox Code Playgroud)
使用 eg 时下载并解析为最新版本的 gonum go get。但是,这也会更新我的go.mod文件,删除latest标签。
我是否应该将go.mod文件作为包含latest标签的版本保留在我的 git 存储库中,并允许用户在构建等时更新版本?
在go.mod. 这实际上go.mod是设计使然:旨在让 go 命令在任何构建中确定性地选择一组版本。如果 go 命令始终选择依赖项的最新版本,则所选版本集将随时间变化而无需任何用户操作。如果您的依赖项之一总是选择其依赖项之一的最新版本,则可能会破坏您的构建,并且很难覆盖。
go get example.com/mod是保持最新状态的最佳方式。这需要手动完成,但如果您有大量依赖项,您可以使用脚本或 CI 中的操作自动完成。
赶紧跑go get <module>。
go get下载依赖项的最新版本,因为它就是这样做的,而不是因为您latest在go.mod.
有没有办法构建 go.mod 以便始终使用最新版本的依赖项?
不,无论如何您都不应该go.mod require自己手动编辑指令的内容。require此外,指令的语法定义为:
require module-path module-version
其中module-version可以是实际标记版本或伪版本,例如当您需要特定提交时。
从技术上讲,您可以编写latest指令require,但下次运行命令时go,它将latest用实际的最新(伪)版本标记替换该单词。它不会留下来 latest,否则你就不会有确定性的依赖关系。
相关:如何将 go.mod 中的 Go 模块依赖项指向存储库中的最新提交?
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |