使用gitlab作為go mod私服

2022-09-23 02:52:07 字數 1132 閱讀 4245

在go 1.13.3之前,由於 gitlab 的版本問題,如果使用了 subgroup,則不能正確返回 meta tag。也就是說,我們使用的 gitlab 版本只支援一層 namespace 下建的專案,如果使用了兩層namespace就會拉取不到倉庫依賴。

問題原因:

replace (

gitlab.company.com/aa/bb/xlib => gitlab.company.com/aa/bb/xlib.git v1.0.0

)

c.修改go原始碼

go/src/cmd/go/internal/modload/query.go
d.在gitlab下建立.netrc檔案

(1.)設定**

# direct 表示**走不通時,使用直接連線

go env -w goproxy=""

(2.)設定私服

設定私有庫後,go會自動設定gonoproxy,gonosumdb兩個環境變數,表示私有庫不走**,也不檢查**sum。

go env -w goprivate="github.com/myprivate/*,gitlab.ce/*"

go env -w goprivate="*.company.io,*.company.com,"

(3.)許可權問題

將 http 形式的的請求,轉換成 ssh 的形式,在.gitconfig中新增一行配置就可以:

[url "[email protected]:"]

insteadof =

[url "[email protected]:"]

insteadof =

或者:git config --global url."[email protected]:groupname/projectname.git".insteadof "groupname/projectname.git"`

// 全域性替換,拉取域名下的所有包

git config --global url."[email protected]:".insteadof ""

基於公司私有gitlab的go-module實踐.html

go mod使用

使用go mod以後,就可以不用在src目錄下去建立工程了。 go module 使用前置條件 go111module 設定為 on mkd...