我有一個關于 golang 依賴項的問題。我的應用程式定義了一個 go.mod,如下所示:
module my.host.com/myapp
require (
ext1.com/module1 v0.0.1
)
go 1.14
ext1.com/module1 依賴于 ext2.com/module2 v0.0.2,而后者又依賴于 ext3.com/module3 v0.0.3
安全掃描檢測到 ext3.com/module3 v0.0.3 不安全,必須更新到 v0.0.4。有沒有辦法“強制” myapp 只獲取 repo3.com/module3 v0.0.4,覆寫 module2 v0.0.2 go.mod 中定義的指令?假設 ext1.com/module1 v0.0.1 已經是最新版本,所以升級它不起作用。“排除 ext3.com/module3 v0.0.3”也不起作用:構建成功(golang 1.17.2),但存在運行時錯誤。“替換”會起作用嗎?假設 ext2 v0.0.3 依賴于安全的 ext3 v0.0.4,我的意思是:
module my.host.com/myapp
require (
ext1.com/module1 v0.0.1
)
replace ext2.com/module2 v0.0.2 => ext2.com/module2 v0.0.3
go 1.14
提前致謝!
uj5u.com熱心網友回復:
運行go get -u ext3.com/[email protected]。
此升級模塊,至少在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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/367229.html
下一篇:在Excel中轉換日期/時間格式
