在 Go 中锁定第三方软件包的特定版本



当我尝试使用以下命令锁定特定版本的软件包时,使用模块:

go mod edit -require "google.golang.org/grpc@v1.10.0"

它在go.mod文件的require部分下显示以下内容:

google.golang.org/protobuf v1.10.0

然后当我运行时:

go mod vendor

它总是下拉当前v1.24.0的最新版本。在go.mod文件的require部分下,它显示:

google.golang.org/protobuf v1.24.0

无论如何,有没有办法锁定特定版本?

我目前正在使用 go 版本 1.14.3。

谢谢!

似乎可以告诉 go mod 只获取指定的版本而不会碰到版本。

go -mod=readonly mod vendor

可以在以下位置找到: https://github.com/thepudds/go-module-knobs/blob/master/README.md

解决此问题的一种方法是在对 go mod 文件进行特定更改后go build。这将确保在代码库中内置go.sum文件。这只不过是您获取的包的校验和。通过这样做,所有未来的拉取都将匹配 go.sum 文件的校验和

最新更新