在我的go.mod文件中,我有:require ( // ... editted for brevity github.com/Liquid-Labs/catalyst-firewrap v2.0.0-prototype.3 // ... )當我嘗試構建依賴于此包的另一個包時,我得到:invalid module: github.com/Liquid-Labs/catalyst-firewrap should be v0 or v1, not v2 (v2.0.0-prototype.3)。在 go 模塊化之前有一個重寫,當時我沒有標記東西,所以沒有v1......這是問題嗎?我沒有運氣在這里找到根本問題的解釋。
1 回答

Qyouu
TA貢獻1786條經驗 獲得超11個贊
根據Go 模塊 wiki:
如果模塊是版本 v2 或更高版本,則模塊的主要版本必須作為 a 包含
/vN
在 go.mod 文件中使用的模塊路徑的末尾(例如,module github.com/my/mod/v2
,require github.com/my/mod/v2 v2.0.0
)和包導入路徑(例如,?import "github.com/my/mod/v2/mypkg"
)中。
同一份文檔引用了 Go 官方常見問題解答中的基本原理:
供公眾使用的軟件包應盡量在發展過程中保持向后兼容性。Go 1 兼容性指南是一個很好的參考:不要刪除導出的名稱,鼓勵標記復合文字,等等。如果需要不同的功能,請添加新名稱而不是更改舊名稱。如果需要完全中斷,請使用新的導入路徑創建一個新包。
和:
如果舊包和新包具有相同的導入路徑,則新包必須向后兼容舊包。
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消