亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go語言公司gitlab私有倉庫依賴拉取配置的兩種實現(xiàn)方式

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

為什么要考慮私有倉庫

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

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

對于沒有子目錄的gitlab項目

如下面這種方式:

# 倉庫地址
https://gitlab.com/group/project

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

可以使用如下命令進行設置, 設置完成之后,則可以通過 go get自動獲取到依賴

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

# 設置URL替換,把https轉為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報錯,可以設置如下,如果本身就是正常的https就不用去管了
git config --global http.sslVerify false

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

對于子目錄的gitlab項目

如下面這種方式

# 項目地址
https://gitlab.com/group/subgroup/project

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

即使我們設置了正常的ssh key,和git的url替換,仍然會得到報錯

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

當我們用搜索引擎去搜去解決問題的時候,我們基本上搜到的結果都是讓你去改 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結尾,這樣是一種比較簡單的解決方案,但是正常的go module 命名一般是不帶 .git 結尾的。 發(fā)生這種情況的原因是,它go get嘗試發(fā)現(xiàn)給定路徑上的模塊以找到請求的 Go 模塊存儲庫。只有找到存儲庫后,工具才會執(zhí)行git clone或git checkout使用 SSH 密鑰進行身份驗證。問題歸結為這樣一個事實:如果沒有 Gitlab 訪問令牌,就無法列出/查看私有Gitlab 子組。 所以這個時候,我們就要用到下面這種方法。

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

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

到此這篇關于Go語言公司gitlab私有倉庫依賴拉取配置的文章就介紹到這了,更多相關Go語言 gitlab私有倉庫依賴拉取內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Golang設計模式中抽象工廠模式詳細講解

    Golang設計模式中抽象工廠模式詳細講解

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

    詳解Go語言的錯誤處理和資源管理

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

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

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

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

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

    Goland IDEA項目多開設置方式

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

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

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

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

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

    golang操作rocketmq的示例代碼

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

    詳解Go語言中Validator庫的使用方法和用途

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

    解析GOROOT、GOPATH、Go-Modules-三者的關系

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

最新評論