Go 模組、私有倉庫和Gopath
簡介:
引入了Go 模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組來管理Go 專案模組中的依賴項。然而,當將內部程式碼庫從外部依賴管理器(如 dep)轉換到 Go 模組時,開發人員在處理私人儲存庫時可能會遇到挑戰。本題分析了 Go 模組在私有儲存庫中的行為及其對 Gopath 的影響。
無點路徑和標準函式庫:
如 OP 所提到的,無點路徑Go 中的模組通常是為標準函式庫保留的。這項限制源自於 Go 作者想要在網域名稱和專案之間建立綁定的意圖。但是,由於內部專案不使用 go get,因此該原則並不直接適用於這種情況。
全有或全無相依性解析:
OP 正確地假設一旦使用 Go 模組,所有依賴項都必須遵守模組系統。然後,Gopath 變得不那麼重要,主要用作下載模組的快取。這種轉變需要使用 go get 解決依賴關係,可能需要使用私人儲存庫。
處理私人儲存庫:
要合併私人儲存庫,開發人員可以考慮使用下列解決方法: GITHUB_TOKEN 授權存取私有儲存庫。此外,可以使用 GOPRIVATE 來指定哪些儲存庫應被視為私人儲存庫。這種方法可以實現私有模組的無縫依賴關係解析。
獨立私有模組開發:
如果需要,開發人員可以將私人模組移出 Gopath 並獨立開發它們。然而,這種方法可能需要遠端推送和拉取更改,這是 OP 想要避免的。
結論:
雖然 Go 模組有潛力增強依賴管理,了解它們對私人儲存庫的影響至關重要。向 Go 模組的過渡需要採用「全有或全無」的方法,其中所有依賴項都必須透過模組系統來解決。使用私有儲存庫需要使用授權令牌並有效管理私有模組的可用性。然而,開發人員可以利用 GOPROXY 實現離線開發,從而減少持續遠端互動的需求。
以上是Go 模組如何處理私人儲存庫並影響 GOPATH?的詳細內容。更多資訊請關注PHP中文網其他相關文章!