我对 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
- 1 回答
- 0 关注
- 227 浏览
添加回答
举报
0/150
提交
取消