猿问

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

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

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

require在文件的部分下显示了这一点go.mod

google.golang.org/protobuf v1.10.0

然后当我运行时:

go mod vendor

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

google.golang.org/protobuf v1.24.0

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

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


翻翻过去那场雪
浏览 706回答 2
2回答

狐的传说

似乎可以告诉 go mod 只获取指定的版本而不碰撞版本。go -mod=readonly mod vendor可以在以下位置找到:https ://github.com/thepudds/go-module-knobs/blob/master/README.md

侃侃无极

解决此问题的一种方法是在go build对 go mod 文件进行特定更改后执行此操作。这将确保您将go.sum文件内置到代码库中。这不过是您获取的包的校验和。通过这样做,所有未来的拉取将匹配 go.sum 文件的校验和
随时随地看视频慕课网APP

相关分类

Go
我要回答