解決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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 完美解決golang go get私有倉庫的問題
- go自動下載所有的依賴包go module使用詳解
- go mode tidy出現報錯go: warning: “all“ matched no packages的解決方法
- go常用指令之go mod詳解
- PHP中token的生成案例