網頁

2021/9/24

Golang Go環境變數 GOPRIVATE 作用

Go的環境變數GOPRIAVTE的作用如下。


GOPRIAVTE設定的module path將不會從module proxy server下載而是從版控庫取得,並且不做checksum檢查。


Go 1.13開始新增了GOPRIAVTE環境變數,用途為指定非公開的module path並做為GONOPROXYGONOSUMDB環境變數的預設值。

執行Go module命令(例如go getgo mod tidy)時會從GOPROXY設定的module proxy server(預設為https://proxy.golang.org,direct)下載專案中依賴的module,並從GOSUMDB指定的校驗碼資料庫(checksum database)(預設為sum.golang.org)取得雜湊進行校驗。但有些非公開的module無法從module proxy取得,只能從版控庫(version control repository)如GitHub或GitLab獲取,這時可透過在GONOPROXY設定該非公開的module path告訴Go不要從module proxy取得而改從版控庫直接取得,並透過設定GONOSUMDB告知Go不要對指定的module path進行校驗。


GOPRIAVTE要設定多個module paths,則用逗號分隔不同的module path。例如下面設定兩個module path分別為gitlab.abc.com/demo/libsgitlab.abc.com/tools

GOPRIVATE=gitlab.abc.com/demo/libs,gitlab.abc.com/tools


沒有留言:

張貼留言