为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中强制传递依赖版本

在 golang 中强制传递依赖版本

Go
慕无忌1623718 2022-10-17 10:22:26
我对 golang 中的依赖项有疑问。我的应用程序定义了这样的 go.mod:module my.host.com/myapprequire (    ext1.com/module1 v0.0.1)go 1.14依赖关系为:ext1.com/module1 v0.0.1依赖于ext3.com/module3 v0.0.3安全扫描检测到ext3.com/module3 v0.0.3不安全,必须更新到v0.0.4。有没有办法“强制” myapp 只获取module3 v0.0.4,覆盖 module1 v0.0.1 go.mod 中定义的指令?假设ext1.com/module1 v0.0.1已经是最新版本,所以升级它不起作用。“替换”会起作用吗?module my.host.com/myapprequire (    ext1.com/module1 v0.0.1)replace ext3.com/module3 v0.0.3 => ext3.com/module3 v0.0.4go 1.14提前致谢!
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

运行go get -u ext3.com/module3@v0.0.4

这会将模块升级到至少v0.0.4

给定依赖关系main -> B -> C,当main需要C比 要求更高B的版本时,选择更高版本,其中// indirect.

看到这个https://go.dev/ref/mod#go-mod-file-require

如果 go 指令指定 go 1.16 或更低版本,则当所选模块的版本高于主模块的其他依赖项已经暗示的(传递性)版本时,go 命令会添加间接要求。这可能是由于显式升级而发生的(go get -u ./...)

我引用这部分是因为你的 go.mod 有go 1.14


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号