佳木斯湛栽影视文化发展公司

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

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

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 服務(wù)外包 呼叫中心市場需求 地方門戶網(wǎng)站 AI電銷 鐵路電話系統(tǒng) Linux服務(wù)器 百度競價排名

解決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進行包管理的時候,要獲取遠程倉庫的最新包,使用go get+項目名獲取,提示404 Not Found,如圖:

原因及解決辦法 原因

這是由于go get在進行獲取遠程包的時候,沒有指定用戶以及密碼,導(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接口細節(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)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    治多县| 阳东县| 白朗县| 临安市| 定南县| 海伦市| 共和县| 望谟县| 岱山县| 台南市| 绵竹市| 尚志市| 甘肃省| 武鸣县| 颍上县| 屏山县| 婺源县| 恩平市| 清远市| 当雄县| 法库县| 郓城县| 永福县| 汉川市| 镇平县| 荥经县| 商丘市| 无极县| 乐亭县| 呼和浩特市| 兴文县| 天长市| 启东市| 嵩明县| 保康县| 铁岭市| 松桃| 上高县| 哈密市| 宿迁市| 双峰县|