主頁 > 知識庫 > 完美解決golang go get私有倉庫的問題

完美解決golang go get私有倉庫的問題

熱門標(biāo)簽:阿克蘇地圖標(biāo)注 電話機器人軟件免費 外呼系統(tǒng)顯本地手機號 涿州代理外呼系統(tǒng) 百度地圖標(biāo)注后傳給手機 excel地圖標(biāo)注分布數(shù)據(jù) 外呼系統(tǒng)用什么卡 壽光微信地圖標(biāo)注 評價高的400電話辦理

解決golang go get gitlab私有倉庫的問題(1.13)

1. 問題描述

require ( 
 git.xxxxxxx.com/middle/user v0.0.1
)

go mod tidy 導(dǎo)入包失敗

go get git.xxxxxxx.com/middle/user 失敗

go build 有CHECKSUM過程,無法編譯

2. 現(xiàn)象分析

go get 不支持代碼支持之外的倉庫。并且git 調(diào)用鏈過程采取了https

下載過程如果機器設(shè)置了GOPROXY,會導(dǎo)致下載失敗

編譯過程會導(dǎo)致CHECKSUM失敗

3. 物料

物料 說明
git.xxxxxxx.com 私有倉庫
middle/user.git 用戶服務(wù)模塊

方案

1、給釋出的倉庫打tag比如v0.0.1,這樣倉庫地址就可以被識別

2、export GOPRIVATE=git.xxxxxxx.com

go build的時候系統(tǒng)就不會用GOPROXY以及不再校驗SUM

3、調(diào)整git https===>ssh,注意username換成自己的用戶名

[url "username@git.xxxxxxx.com"]
    insteadOf = https://git.xxxxxxx.com

結(jié)論

這個問題,google 堪稱一絕,夠任性

補充:go get拉取私有項目,遇到 404 Not Found解決辦法

問題

利用go module進行包管理的時候,要獲取遠(yuǎn)程倉庫的最新包,使用go get+項目名獲取,提示404 Not Found,如圖:

原因及解決辦法 原因

這是由于go get在進行獲取遠(yuǎn)程包的時候,沒有指定用戶以及密碼,導(dǎo)致沒有權(quán)限,故失敗

辦法

go get時添加“-insecure”參數(shù),如圖:

補充:golang 配置私有倉庫

配置使用ssh 訪問的倉庫

1. go mod 根據(jù)go.mod拉取依賴庫時

會使用https的方式。為了方便我們也可以通過配置git 全局配置來使用 ssh的方式拉取依賴,下面是配置 https轉(zhuǎn)換為ssh的方式:

git config --global url."git@gitee.com:".insteadOf https://gitee.com/

2. 配置環(huán)境變量

來指定私有倉庫,用于不走代理的方式

go env -w GOPRIVATE=gitee.com

這里配置私有倉庫是gitee

3. 設(shè)置代理

go env -w GOPROXY=goproyx.io

常見錯誤:

1. 錯誤一

abc@Genricde helloworld % go get -u gitee.com/abc/helloworld/v3 go: gitee.com/abc/helloworld/v3@v3.0.1-5 requires gitee.com/abc/tsab@v0.0.0-20210208082057-adbeb3ca5366: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /Users/abc/developer/golang/pkg/mod/cache/vcs/742008abb4987f237c93efc5ddde7db6dd8d1841fe94aea076046d86a92e26a7: exit status 128: fatal: could not read Username for 'https://gitee.com': terminal prompts disabled

這種錯誤為沒有配置 git 的https轉(zhuǎn)換為 ssh

2. 錯誤二

go: gitee.com/abc/helloworld@v0.0.0-20210121064045-46ac6dd9cdce requires gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae/go.mod: verifying module: gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae/go.mod: reading https://goproxy.io/sumdb/sum.golang.org/lookup/gitee.com/abc/tsab@v0.0.0-20210208023819-88ebb8c504ae: 410 Gone server response: not found: gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/742008abb4987f237c93efc5ddde7db6dd8d1841fe94aea076046d86a92e26a7: exit status 128: fatal: could not read Username for 'https://gitee.com': terminal prompts disabled

這種錯誤是GOPRIVATE 設(shè)置錯誤,使得go去驗證庫的sum

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang中switch語句和select語句的用法教程
  • Golang 編譯成DLL文件的操作
  • golang調(diào)用c實現(xiàn)的dll接口細(xì)節(jié)分享
  • Golang如何調(diào)用windows下的dll動態(tài)庫中的函數(shù)
  • golang實踐-第三方包為私有庫的配置方案
  • golang gopm get -g -v 無法獲取第三方庫的解決方案
  • Golang: 內(nèi)建容器的用法
  • golang switch語句的靈活寫法介紹

標(biāo)簽:梅河口 汕頭 吐魯番 蘭州 欽州 雞西 重慶 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《完美解決golang go get私有倉庫的問題》,本文關(guān)鍵詞  完美,解決,golang,get,私有,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《完美解決golang go get私有倉庫的問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于完美解決golang go get私有倉庫的問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章