欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語(yǔ)言公司gitlab私有倉(cāng)庫(kù)依賴?yán)∨渲玫膬煞N實(shí)現(xiàn)方式

 更新時(shí)間:2025年11月02日 10:07:35   作者:li_zehao  
文章主要介紹了如何在Go語(yǔ)言中管理私有倉(cāng)庫(kù)依賴,Go語(yǔ)言目前使用官方的gomodules來管理依賴,對(duì)于公有倉(cāng)庫(kù)使用goget直接操作即可,但私有倉(cāng)庫(kù)則需要額外的配置,下面就來詳細(xì)的介紹一下如何配置,感興趣的可以了解一下

為什么要考慮私有倉(cāng)庫(kù)

Go語(yǔ)言目前都已經(jīng)采用了官方統(tǒng)一的 go modules 來管理依賴,后續(xù)也不太可能出現(xiàn)比較亂的生態(tài), 因此了解下如何讓這個(gè)依賴管理正常工作是非常必要的。

對(duì)于Github或者其他公有倉(cāng)庫(kù),依賴管理是非常直接和方便的,設(shè)置好GOPROXY后,使用 go get去直接操作依賴,是不會(huì)報(bào)錯(cuò)的,很方便直接, 但是對(duì)于一些公司或者組織,一些代碼不能公開的, 那就涉及到私有依賴管理了, 通常而言,直接使用go get 肯定會(huì)報(bào)錯(cuò),去網(wǎng)上搜搜也不太全,設(shè)置完git url替換 之后,依然會(huì)報(bào)錯(cuò)。 本文主要是講述,如何進(jìn)行開發(fā)設(shè)置而不報(bào)錯(cuò)。

對(duì)于沒有子目錄的gitlab項(xiàng)目

如下面這種方式:

# 倉(cāng)庫(kù)地址
https://gitlab.com/group/project

# gomodule 名稱為
gitlab.com/group/project

可以使用如下命令進(jìn)行設(shè)置, 設(shè)置完成之后,則可以通過 go get自動(dòng)獲取到依賴

# 設(shè)置GOPRIVATE環(huán)境變量
go env -w  GOPRIVATE=gitlab.com
go env -w  GOPRIVATE=gitlab.bitmartpro.com

# 設(shè)置URL替換,把https轉(zhuǎn)為ssh獲取依賴
git config --global url."git@gitlab.com".insteadOf "https://gitlab.com"
git config --global url."git@gitlab.bitmartpro.com:".insteadOf "https://gitlab.bitmartpro.com/"

# 如果遇到https報(bào)錯(cuò),可以設(shè)置如下,如果本身就是正常的https就不用去管了
git config --global http.sslVerify false

按照如上方法設(shè)置一下,你就能輕松通過 go get來獲取到私有的依賴,但這種方式有一個(gè)弊端,就是如果項(xiàng)目放在子目錄下面,則依賴獲取仍然會(huì)失敗,下面就會(huì)講一下兩種在子目錄存在的情況下,如何正常去獲取私有依賴的方法。

對(duì)于子目錄的gitlab項(xiàng)目

如下面這種方式

# 項(xiàng)目地址
https://gitlab.com/group/subgroup/project

# go module 名稱
gitlab.com/group/subgroup/project

即使我們?cè)O(shè)置了正常的ssh key,和git的url替換,仍然會(huì)得到報(bào)錯(cuò)

The project you were looking for could not be found or you don't have permissions to view it. 

當(dāng)我們用搜索引擎去搜去解決問題的時(shí)候,我們基本上搜到的結(jié)果都是讓你去改 go module 的名稱,如下

rm go.mod go.sum
go mod init gitlab.com/myuser/foogroup/barlib.git
go mod tidy
 
cd /go/src/another_project
go get gitlab.com/myuser/foogroup/barlib.git

它要求,必須要以 .git結(jié)尾,這樣是一種比較簡(jiǎn)單的解決方案,但是正常的go module 命名一般是不帶 .git 結(jié)尾的。 發(fā)生這種情況的原因是,它go get嘗試發(fā)現(xiàn)給定路徑上的模塊以找到請(qǐng)求的 Go 模塊存儲(chǔ)庫(kù)。只有找到存儲(chǔ)庫(kù)后,工具才會(huì)執(zhí)行g(shù)it clone或git checkout使用 SSH 密鑰進(jìn)行身份驗(yàn)證。問題歸結(jié)為這樣一個(gè)事實(shí):如果沒有 Gitlab 訪問令牌,就無法列出/查看私有Gitlab 子組。 所以這個(gè)時(shí)候,我們就要用到下面這種方法。

  1. 在gitlab中創(chuàng)建token Gitlab->Preferences->Access Tokens
  2. 對(duì)于windows系統(tǒng), 你可以先設(shè)置一個(gè)HOME的環(huán)境變量,指向你的用戶目錄,然后在用戶目錄下創(chuàng)建 _netrc文件; 對(duì)于Mac/Linux 則可以直接創(chuàng)建 ~/.netrc 文件
  3. 按照如下方式編輯 ~/.netrc 文件
machine gitlab.com
    login my_gitlab_username
    password my_gitlab_token
  • 上述machine是指你的gitlab倉(cāng)庫(kù)的地址
  • login 則為你的gitlab的用戶名
  • password就是第一步創(chuàng)建的gitlab訪問token

結(jié)合如上幾種方式,你應(yīng)該可以完整的解決掉你的go 獲取私有依賴的問題。

到此這篇關(guān)于Go語(yǔ)言公司gitlab私有倉(cāng)庫(kù)依賴?yán)∨渲玫奈恼戮徒榻B到這了,更多相關(guān)Go語(yǔ)言 gitlab私有倉(cāng)庫(kù)依賴?yán)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang設(shè)計(jì)模式中抽象工廠模式詳細(xì)講解

    Golang設(shè)計(jì)模式中抽象工廠模式詳細(xì)講解

    抽象工廠模式用于生成產(chǎn)品族的工廠,所生成的對(duì)象是有關(guān)聯(lián)的。如果抽象工廠退化成生成的對(duì)象無關(guān)聯(lián)則成為工廠函數(shù)模式。比如本例子中使用RDB和XML存儲(chǔ)訂單信息,抽象工廠分別能生成相關(guān)的主訂單信息和訂單詳情信息
    2023-01-01
  • 詳解Go語(yǔ)言的錯(cuò)誤處理和資源管理

    詳解Go語(yǔ)言的錯(cuò)誤處理和資源管理

    資源處理是什么?打開文件需要關(guān)閉,打開數(shù)據(jù)庫(kù)連接,連接需要釋放。這些成對(duì)出現(xiàn)的就是資源管理。有時(shí)候我們雖然釋放了,但是程序在中間出錯(cuò)了,那么可能導(dǎo)致資源釋放失敗。如何保證打開的文件一定會(huì)被關(guān)閉呢?這就是資源管理與錯(cuò)誤處理考慮的一個(gè)原因
    2021-06-06
  • go同步原語(yǔ)Phaser和Barrier區(qū)別

    go同步原語(yǔ)Phaser和Barrier區(qū)別

    這篇文章主要為大家介紹了通過java講解go同步原語(yǔ)Phaser和Barrier區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Golang中的int類型和uint類型到底有多大?

    Golang中的int類型和uint類型到底有多大?

    int和uint類型在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)用到,但有個(gè)疑問就是這兩個(gè)類型有多大,通過各種嘗試最終得到了答案,所以下面這篇文章主要給大家介紹了關(guān)于Golang中的int類型和uint類型到底有多大的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • Goland IDEA項(xiàng)目多開設(shè)置方式

    Goland IDEA項(xiàng)目多開設(shè)置方式

    這篇文章主要介紹了Goland IDEA項(xiàng)目多開設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Go1.18新特性之泛型使用三步曲(小結(jié))

    Go1.18新特性之泛型使用三步曲(小結(jié))

    本文主要介紹了Go1.18新特性之泛型,是Go1.18的新特性,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法

    GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法

    這篇文章主要介紹了GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • golang操作rocketmq的示例代碼

    golang操作rocketmq的示例代碼

    這篇文章主要介紹了golang操作rocketmq的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 詳解Go語(yǔ)言中Validator庫(kù)的使用方法和用途

    詳解Go語(yǔ)言中Validator庫(kù)的使用方法和用途

    github.com/go-playground/validator 是一個(gè) Go 語(yǔ)言的庫(kù),用于對(duì)結(jié)構(gòu)體字段進(jìn)行驗(yàn)證,它提供了一種簡(jiǎn)單而靈活的方式來定義驗(yàn)證規(guī)則,在這篇文章中,我們將從一個(gè)簡(jiǎn)單的問題出發(fā),帶你了解 Validator 庫(kù)的用途,也會(huì)介紹Validator 的基本使用
    2023-09-09
  • 解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    這篇文章主要介紹了解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論