最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go mod私有倉庫配置小結(jié)

 更新時(shí)間:2025年03月28日 09:21:45   作者:Daniel YK  
Go語言私有倉庫通常指的是那些不在公共倉庫如GitHub上的倉庫,本文主要介紹了go mod私有倉庫配置,具有一定的參考價(jià)值,感興趣的可以了解一下

Golang版本控制

go version v1.22.0

當(dāng)我們新建一個(gè)go項(xiàng)目時(shí),在項(xiàng)目根目錄下執(zhí)行go mod init可以初始化go.mod文件用于管理包依賴。后續(xù)執(zhí)行go mod tidy更新并下載所有的依賴包。
如果我們沒有進(jìn)行配置,則只能訪問公共開源倉庫。如果想要下載私有倉庫依賴包則需要進(jìn)行一些配置。

go mod使用私有倉庫(gitlab)依賴設(shè)置

假如想配置托管站點(diǎn)gitlab.example.cn,按照如下步驟操作:

設(shè)置GOPRIVATE環(huán)境變量,防止走代理:

  • go env -w GOPRIVATE=*.gitlab.example.cn/*
  • go env -w GONOPROXY=*.gitlab.example.cn/*

配置倉庫訪問權(quán)限,有兩種方式:

  • 方式一(推薦): 配置git將請求從ssh轉(zhuǎn)換為https:git config --global url."ssh://git@gitlab.example.cn/".insteadof "https://gitlab.example.cn/"
  • 方式二:添加倉庫訪問Token: git config --global http.extraheader "PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN"

由于訪問不到驗(yàn)證服務(wù)器,如下方式二選一:

  • 方式一:go env -w GONOSUMDB=gitlab.example.com/*
  • 方式二:關(guān)閉驗(yàn)證服務(wù) go env -w GOSUMDB=off

如果私有庫不支持https協(xié)議,設(shè)置跳過CA證書校驗(yàn):go env -w GOINSECURE='gitlab.example.com/*'

配置完成后可以git config -l查看git配置,也可以通過.gitconfig直接編輯git配置:

[http]
	extraheader = PRIVATE-TOKEN:UsQsxy5q_Nqy-pXHtu-V
	
[url "ssh://git@gitlab.example.cn/"]
	insteadof = https://gitlab.example.cn/

通過go env查看環(huán)境變量配置,也可以直接通過profile配置環(huán)境變量:

export GOPRIVATE=*.gitlab.example.com/*
export GONOPROXY=*.gitlab.example.com/*
export GOINSECURE=*.gitlab.example.com/*
export GONOSUMDB=*.gitlab.example.com/*

配置代碼托管站點(diǎn)

Go mod尋找代碼倉庫原理

https://pkg.go.dev/cmd/go#hdr-Remote_import_paths

如果import路徑不是已知的代碼托管站點(diǎn)并且也缺少版本控制限定符,則go工具會嘗試通過https/http獲取導(dǎo)入并在文檔的HTML <head>中查找<meta>標(biāo)記。

元標(biāo)記的形式如下:

<meta name="go-import" content="import-prefix vcs repo-root">

使用mod時(shí),會識別go-import元標(biāo)記的附加變體,并且優(yōu)先級高于那些默認(rèn)的版本控制系統(tǒng)。該變體使用mod作為內(nèi)容值中的vcs,如下所示:

<meta name="go-import" content="example.org mod https://code.org/moduleproxy">

此標(biāo)簽表示從 URLhttps://code.org/moduleproxy上的模塊代理中獲取路徑以 example.org開頭的模塊。有關(guān)代理協(xié)議的詳細(xì)信息, 請參閱https://golang.org/ref/mod#goproxy-protocol 。

查找模塊路徑的存儲庫:https://go.dev/ref/mod#vcs-find

使用代理實(shí)現(xiàn)代碼托管站點(diǎn)訪問

一般主流的代碼托管站站點(diǎn)如github,gitlab,Gitee等,都默認(rèn)支持返回站點(diǎn)的golang mod元數(shù)據(jù)。
如果無法對外暴露站點(diǎn)的域名,且甚至無法擁有更改站點(diǎn)訪問地址的權(quán)限。比如,部署站點(diǎn)的時(shí)候是以ip+port的方式訪問。這時(shí)需要配置一個(gè)虛擬的域名作為go mod的引用包路徑,這時(shí)可以使用Nginx配置站點(diǎn)的內(nèi)網(wǎng)訪問代理,返回帶有元標(biāo)記的靜態(tài)頁面。例如要訪問站點(diǎn)gitlab.example.com

if ($args ~* "^go-get=1") {
                        set $condition goget;
        }
        if ($uri ~ "(/[^/]+/[^/]+)(/.*)?") {
                        set $condition "${condition}path";
        }
        if ($condition = gogetpath) {
                        return 200 "<!DOCTYPE html><html><head><meta content='gitlab.example.com$1 git https://gitlab.example.com$1.git' name='go-import'></head></html>";
        }

參考:https://stackoverflow.com/questions/26347516/using-go-get-on-a-personal-git-repo

到此這篇關(guān)于go mod私有倉庫配置小結(jié)的文章就介紹到這了,更多相關(guān)go mod私有倉庫配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go?Wails開發(fā)桌面應(yīng)用使用示例探索

    Go?Wails開發(fā)桌面應(yīng)用使用示例探索

    這篇文章主要為大家介紹了Go?Wails的使用示例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go語言使用組合的方式實(shí)現(xiàn)多繼承的方法

    Go語言使用組合的方式實(shí)現(xiàn)多繼承的方法

    這篇文章主要介紹了Go語言使用組合的方式實(shí)現(xiàn)多繼承的方法,實(shí)例分析了多繼承的原理與使用組合方式來實(shí)現(xiàn)多繼承的技巧,需要的朋友可以參考下
    2015-02-02
  • GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解

    GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解

    這篇文章主要為大家介紹了GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 基于go interface{}==nil 的幾種坑及原理分析

    基于go interface{}==nil 的幾種坑及原理分析

    這篇文章主要介紹了基于go interface{}==nil 的幾種坑及原理分析,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 一個(gè)Pod調(diào)度失敗后重新觸發(fā)調(diào)度的所有情況分析

    一個(gè)Pod調(diào)度失敗后重新觸發(fā)調(diào)度的所有情況分析

    這篇文章主要為大家介紹了一個(gè)Pod調(diào)度失敗后重新觸發(fā)調(diào)度的所有情況分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Golang處理parquet文件實(shí)戰(zhàn)指南

    Golang處理parquet文件實(shí)戰(zhàn)指南

    這篇文章主要給大家介紹了關(guān)于Golang處理parquet文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Golang具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 一文教你如何封裝安全的go

    一文教你如何封裝安全的go

    這篇文章主要給大家介紹了關(guān)于如何封裝安全go的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Go語言中的各類運(yùn)算操作符詳解

    Go語言中的各類運(yùn)算操作符詳解

    本文全面探討了Go語言中的各類運(yùn)算操作符,從基礎(chǔ)的數(shù)學(xué)和位運(yùn)算到邏輯和特殊運(yùn)算符,文章旨在深入解析每一種運(yùn)算操作符的工作原理、應(yīng)用場景和注意事項(xiàng),以幫助開發(fā)者編寫更高效、健壯和可讀的Go代碼,</P><P>
    2023-09-09
  • Golang?手寫一個(gè)簡單的并發(fā)任務(wù)?manager

    Golang?手寫一個(gè)簡單的并發(fā)任務(wù)?manager

    這篇文章主要介紹了Golang?手寫一個(gè)簡單的并發(fā)任務(wù)?manager,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • golang 實(shí)現(xiàn)一個(gè)restful微服務(wù)的操作

    golang 實(shí)現(xiàn)一個(gè)restful微服務(wù)的操作

    這篇文章主要介紹了golang 實(shí)現(xiàn)一個(gè)restful微服務(wù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

如东县| 苍溪县| 武川县| 威远县| 锡林郭勒盟| 台山市| 黔西| 孝义市| 渑池县| 崇左市| 贵州省| 隆化县| 辽中县| 安图县| 卢氏县| 石门县| 广丰县| 莱西市| 白山市| 遂川县| 穆棱市| 宁安市| 莫力| 出国| 通渭县| 延安市| 成都市| 芦山县| 凤阳县| 右玉县| 绥阳县| 彰化市| 红安县| 本溪市| 长寿区| 临沭县| 肃南| 兴文县| 桐城市| 布尔津县| 涿鹿县|