解決go mod私有倉庫拉取的問題

用go mod的時候應該會遇到無法拉取私有倉庫的問題

從你gitlab平臺生成一個token,在~/.gitcoinfig中

[http]下增加extraheader = PRIVATE-TOKEN: 你的token

[url]下增加 insteadOf = https://gitlab.你的gitlab服務器.com

如果還不生效則增加環境變量後嘗試:

export GOPRIVATE=gitlab.你的gitlab服務器.cn

補充:go module 引用碼雲(或其他私有倉庫)的配置

go1.13開始引入瞭go mod包管理。go1.16開始默認開啟go mod,以下總結在使用go mod 時,引用私有倉庫或本地倉庫出現的問題。此處以windows環境為例,Linux操作類似。

私有倉庫(如碼雲/gitlab)

首先要保證配置過ssh私鑰,即通過git可以直接拉取到私有倉庫。

系統環境變量中加入GOPRIVATE變量,值為要過濾的私有地址,如*gitee.com。此處配置作用是通過代理拉取module時過濾掉碼雲的地址,不通代理拉取私有倉庫地址。

在這裡插入圖片描述

此時項目中已經可以正常拉取私有倉庫

PS D:\go\src\test\TESTS\test43> go mod init
go: creating new go.mod: module test/TESTS/test43
go: to add module requirements and sums:
        go mod tidy
PS D:\go\src\test\TESTS\test43> go mod tidy
go: finding module for package gitee.com/xxxxx/xxxxx
go: found gitee.com/xxxxx/xxxxx in gitee.com/xxxxx/xxxxx v0.0.0-20200805075307-22c2dee8df32

go.mod文件:

module test/TESTS/test43
go 1.16
require gitee.com/xxxxx/xxxxx v0.0.0-20200805075307-22c2dee8df32

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: