天天看點

Go下載下傳依賴包失敗的解決方法

jenkins建構job,執行go test指令報如下圖的timeout錯誤

Go下載下傳依賴包失敗的解決方法

從報錯資訊中可以看出是因為下載下傳依賴包逾時

解決方法:

go env檢視go環境變量

GOSUMDB=sum.golang.org,用于驗證包的有效性,但是由于這個網站被牆了,是以報timeout

可以通過如下指令關閉:

go env-w GOSUMDB=off

也可以設定 GOSUMDB="sum.golang.google.cn", 這個是專門為國内提供的sum 驗證服務

或者通過修改環境變量檔案.bash_profile

  • vi .bash_profile
  • 更改
  • source .bash_profile
Go下載下傳依賴包失敗的解決方法

再次go env檢視,改變已生效

Go下載下傳依賴包失敗的解決方法

改完後,在視窗和jenkins job都試一下(執行go test指令),結果視窗可以,jenkins job依然不行。

真可謂是一坑剛平,一坑又起,因為在slave機器上修改了環境變量檔案.bash_profile,是不是jenkins job沒有感覺到環境變量的更改?

在shell腳本頭部加入一行source /Users/xes/.bash_profile,及在執行go test指令前先加載一下環境變量

Go下載下傳依賴包失敗的解決方法

再次建構jenkins job,成功!

Go下載下傳依賴包失敗的解決方法