当我尝试使用以下命令锁定特定版本的软件包时,使用模块:
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 文件的校验和