3 回答

TA貢獻1801條經(jīng)驗 獲得超16個贊
事實證明,問題在于其中一個依賴項引用了pre-go-modulesgithub.com/shared/dependency/api
的版本。
這導(dǎo)致 go 工具具有對子模塊的模塊引用,而且還對go-modules 之前版本的github.com/shared/dependency/api
整個存儲庫進行黑盒導(dǎo)入。github.com/shared/dependency
在這個例子中,這意味著v1.2.0
有 go 模塊(有一個go.mod
文件),而v1.1.0
沒有。
將以下行添加到我的go.mod
文件中能夠解決該問題,并且該解決方案適用于我遇到此類沖突的多個依賴項:
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
請注意,此解決方案僅有效,因為我們強制對共享依賴項的引用使用支持 go-module 的版本(v1.2.0+)。

TA貢獻1836條經(jīng)驗 獲得超5個贊
為了以后參考,我發(fā)現(xiàn)當上面的方法不起作用時,運行go get github.com/shared/dependency/api@latest
似乎起作用了。replace
據(jù)推測,這會強制兩個模塊使用最新版本的依賴項。

TA貢獻1848條經(jīng)驗 獲得超10個贊
我簡單地解決了以下問題ambiguous import: found package time in multiple modules:
只需刪除該mod
文件,然后使用與任何現(xiàn)有模塊名稱不匹配的go mod init
不同名稱再次刪除即可。
go mod init time
-不正確
go mod init gotime
-正確
- 3 回答
- 0 關(guān)注
- 329 瀏覽
添加回答
舉報