解決Go 模組與頂層模組和子模組導入的依賴衝突
當頂級模組和以下之一時,會出現此問題它的子模組分別以不同版本導入,導致依賴衝突。考慮這樣一個場景,您的專案有兩個依賴項:github.com/foo/bar 和 github.com/raz/mataz。執行 go mod download 後,由於存在子模組,會下載兩個不同版本的 github.com/shared/dependency。
檢查下載的模組會發現多個下載版本:
嘗試匯入 github.com/ 時,此不符會導致不明確的導入錯誤共用/依賴/api。由於兩個目錄中存在版本衝突,go 工具無法確定使用哪個版本。
解決方案:升級依賴版本
此問題的根本原因通常是與衝突依賴項中的 pre-go-modules 版本控制相關。將以下行加入go.mod 檔案中會強制衝突的依賴項使用支援go-module 的版本:
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
這有效地強制對github.com/shared/dependency 的引用使用與go相容的版本模組,解決衝突的依賴問題。值得注意的是,此解決方案有效,因為對共享依賴項的所有參考都被導向到啟用 go-module 的版本。
以上是如何解決頂層模組和子模組導入的 Go 模組依賴衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!