强制在Golang中使用一个可传递依赖版本

4

我有一个关于Golang依赖性的问题。我的应用程序定义了如下 go.mod:

module my.host.com/myapp

require (
    ext1.com/module1 v0.0.1
)

go 1.14

依赖关系为:
  1. 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 中定义的指令?
  1. 假设 ext1.com/module1 v0.0.1 已经是最新版本,则升级它无法解决问题。
"replace" 是否能起作用?
module my.host.com/myapp

require (
    ext1.com/module1 v0.0.1
)

replace ext3.com/module3 v0.0.3 => ext3.com/module3 v0.0.4

go 1.14

感谢您的提前帮助!
1个回答

1
运行 go get -u ext3.com/module3@v0.0.4 命令,可以升级模块到至少v0.0.4版本。当main依赖于BC时,如果main需要的C版本高于B所需版本,则会选择更高的版本,并添加// indirect标记。更多信息请参见https://go.dev/ref/mod#go-mod-file-require。引用这部分是因为你的go.mod文件中有go 1.14

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接