始终需要go.mod中最新版本的依赖项
撇开这是否是一个好主意,有没有一种方法可以构造go.mod以便始终使用最新版本的依赖项?
我发现的一种方法是,例如,
require (
gonum.org/v1/gonum latest
)
使用 eg 时下载并解析为最新版本的 gonum go get。但是,这也会更新我的go.mod文件,删除latest标签。
我是否应该将go.mod文件作为包含latest标签的版本保留在我的 git 存储库中,并允许用户在构建等时更新版本?
回答
在go.mod. 这实际上go.mod是设计使然:旨在让 go 命令在任何构建中确定性地选择一组版本。如果 go 命令始终选择依赖项的最新版本,则所选版本集将随时间变化而无需任何用户操作。如果您的依赖项之一总是选择其依赖项之一的最新版本,则可能会破坏您的构建,并且很难覆盖。
go get example.com/mod是保持最新状态的最佳方式。这需要手动完成,但如果您有大量依赖项,您可以使用脚本或 CI 中的操作自动完成。