本文目錄一覽:
GO語言(二十七):管理依賴項(下)-
當您對外部模塊的存儲庫進行了 fork (例如修復模塊代碼中的問題或添加功能)時,您可以讓 Go 工具將您的 fork 用於模塊的源代碼。這對於測試您自己的代碼的更改很有用。
為此,您可以使用go.mod 文件中的replace指令將外部模塊的原始模塊路徑替換為存儲庫中 fork 的路徑。這指示 Go 工具在編譯時使用替換路徑(fork 的位置),例如,同時允許您保留import 原始模塊路徑中的語句不變。
在以下 go.mod 文件示例中,當前模塊需要外部模塊example.com/theirmodule。然後該replace指令將原始模塊路徑替換為example.com/myfork/theirmodule模塊自己的存儲庫的分支。
設置require/replace對時,使用 Go 工具命令確保文件描述的需求保持一致。使用go list命令獲取當前模塊正在使用的版本。然後使用go mod edit命令將需要的模塊替換為fork:
注意: 當您使用該replace指令時,Go 工具不會像添加依賴項中所述對外部模塊進行身份驗證。
您可以使用go get命令從其存儲庫中的特定提交為模塊添加未發布的代碼。
為此,您使用go get命令,用符號@指定您想要的代碼 。當您使用go get時,該命令將向您的 go.mod 文件添加一個 需要外部模塊的require指令,使用基於有關提交的詳細信息的偽版本號。
以下示例提供了一些說明。這些基於源位於 git 存儲庫中的模塊。
當您的代碼不再使用模塊中的任何包時,您可以停止將該模塊作為依賴項進行跟蹤。
要停止跟蹤所有未使用的模塊,請運行go mod tidy 命令。此命令還可能添加在模塊中構建包所需的缺失依賴項。
要刪除特定依賴項,請使用go get,指定模塊的模塊路徑並附加 @none,如下例所示:
go get命令還將降級或刪除依賴於已刪除模塊的其他依賴項。
當您使用 Go 工具處理模塊時,這些工具默認從 proxy.golang.org(一個公共的 Google 運行的模塊鏡像)或直接從模塊的存儲庫下載模塊。您可以指定 Go 工具應該使用另一個代理伺服器來下載和驗證模塊。
如果您(或您的團隊)已經設置或選擇了您想要使用的不同模塊代理伺服器,您可能想要這樣做。例如,有些人設置了模塊代理伺服器,以便更好地控制依賴項的使用方式。
要為 Go 工具指定另一個模塊代理伺服器,請將GOPROXY 環境變數設置為一個或多個伺服器的 URL。Go 工具將按照您指定的順序嘗試每個 URL。默認情況下,GOPROXY首先指定一個公共的 Google 運行模塊代理,然後從模塊的存儲庫直接下載(在其模塊路徑中指定):
您可以將變數設置為其他模塊代理伺服器的 URL,用逗號或管道分隔 URL。
Go 模塊經常在公共互聯網上不可用的版本控制伺服器和模塊代理上開發和分發。您可以設置 GOPRIVATE環境變數。您可以設置GOPRIVATE環境變數來配置go命令以從私有源下載和構建模塊。然後 go 命令可以從私有源下載和構建模塊。
GOPRIVATE或環境變數可以設置為匹配模塊前綴的全局模式列表,這些GONOPROXY前綴是私有的,不應從任何代理請求。例如:
golang私有倉庫依賴配置
golang私有倉庫依賴配置
版本要求:go 1.14+
go mod 配置:
go env -w GOPRIVATE=”gitlab.xxx.com” //配置私有倉庫域名 :重要
go env -w GONOPROXY=”gitlab.xxx.com” //此配置下的域名默認不走代理
go env -w GONOSUMDB=”gitlab.xxx.com” //此配置下的域名默認不進行gosumdb校驗
go env -w GOINSECURE=”gitlab.xxx.com” //此配置下的域名默認採用http協議 。有些公司的私有倉庫採用http協議,而go mod默認採用 https,請根據實際情況進行配置:重要
賬戶及密碼:
因私有倉庫一般都需要進行登錄,所以可以通過隱藏文件進行用戶名及密碼配置。
文件路徑:~/.netrc //默認Linux系統,
文件內容:
machine 域名 //gitlab.xxx.com
login 賬號
password 密碼
Go 設置Proxy
可以通過配置GOPROXY避免模塊拉取緩慢或失敗的問題,加速你的構建
阿里雲 Go Proxy
Go Proxy 中國
七牛雲 – Goproxy.cn
打開你的終端並執行
打開你的終端並執行
或者
完成。
打開你的 PowerShell 並執行
或者
完成。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196810.html