我們知道從 Go 1.11
版本開始,官方支援了 go module
包依賴管理工具。
其實還新增了 GOPROXY
環境變數。如果設定了該變數,下載原始碼時將會透過這個環境變數設定的代理地址,而不再是以前的直接從程式碼庫下載。這無疑對我等無法科學上網的開發良民來說是最大的福音。
更可喜的是,goproxy.io 這個開源專案幫我們實現好了我們想要的。該專案允許開發者一鍵構建自己的 GOPROXY
代理服務。同時,也提供了公用的代理服務 https://goproxy.io
,我們只需設定該環境變數即可正常下載被牆的原始碼包了:
export GOPROXY=https://goproxy.io
不過,需要依賴於 go module
功能。可透過 export GO111MODULE=on
開啟 MODULE。
如果專案不在 GOPATH
中,則無法使用 go get ...
,但可以使用 go mod ...
相關命令。
也可以透過置空這個環境變數來關閉,export GOPROXY=
。
對於 Windows 使用者,可以在 PowerShell
中設定:
$env:GOPROXY = "https://goproxy.io"
最後,我們當然推薦使用 GOPROXY
這個環境變數的解決方式,前提是 Go version >= 1.11。
本文非原創,因為依賴的問題,困擾我三天左右(現階段我就晚上搗鼓go,白天有其它工作),透過 google 在網上找到一篇帖子,也就是上面的內容,配置 GOPROXY 之後,相關依賴都下載成功。之所以把內容貼過來,是因為國內可能無法訪問該網頁… 原帖內容不止這一個方法,但那些方法國內的帖子都有出現過,只有上文解決方法,我尚未遇到發現,原文地址:一鍵解決 go get golang.org/x 包失敗
go env -w GOPROXY=https://goproxy.cn,https://gocenter.io,https://goproxy.io,direct
本作品採用《CC 協議》,轉載必須註明作者和本文連結