完美解决golanggoget私有仓库的问题
解决golang go get gitlab私有仓库的问题(1.13)
1. 问题描述
require (
)
go mod tidy 导⼊包失败
go x/middle/user 失败
go build 有CHECKSUM过程,⽆法编译
2. 现象分析
go get 不⽀持代码⽀持之外的仓库。并且git 调⽤链过程采取了https
下载过程如果机器设置了GOPROXY,会导致下载失败
编译过程会导致CHECKSUM失败
3. 物料
物料说明
middle/user.git⽤户服务模块
⽅案
1、给释出的仓库打tag⽐如v0.0.1,这样仓库地址就可以被识别
2、export x
go build的时候系统就不会⽤GOPROXY以及不再校验SUM
3、调整git https===>ssh,注意username换成⾃⼰的⽤户名
[url "x"]
insteadOf = x
结论
这个问题,google 堪称⼀绝,够任性
补充:go get拉取私有项⽬,遇到 404 Not Found解决办法
问题
利⽤go module进⾏包管理的时候,要获取远程仓库的最新包,使⽤go get+项⽬名获取,提⽰404 Not Found,如图:
原因及解决办法原因
这是由于go get在进⾏获取远程包的时候,没有指定⽤户以及密码,导致没有权限,故失败
办法
go get时添加“-insecure”参数,如图:
补充:golang 配置私有仓库
配置使⽤ssh 访问的仓库
1. go mod 根据go.mod拉取依赖库时
会使⽤https的⽅式。为了⽅便我们也可以通过配置git 全局配置来使⽤ ssh的⽅式拉取依赖,下⾯是配置 https转换为ssh的⽅式:
git config --global url."git@gitee:".insteadOf gitee/
2. 配置环境变量
来指定私有仓库,⽤于不⾛代理的⽅式
go env -w GOPRIVATE=gitee
这⾥配置私有仓库是gitee
3. 设置代理
go env -w GOPROXY=goproyx.io
常见错误:
1. 错误⼀
abc@Genricde helloworld % go get -u gitee/abc/helloworld/v3 go: gitee/abc/helloworld/v3@v3.0.1-5 requires gitee/abc/tsab@v0.0.0-20210208082057-adbeb3ca5366: invalid
version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in
/Users/abc/developer/golang/pkg/mod/cache/vcs/742008abb4987f237c93efc5ddde7db6dd8d1841fe94aea076046d86a92e26a7: exit status 128: fatal: could not read Username for 'gitee': terminal prompts disabled
这种错误为没有配置 git 的https转换为 ssh
2. 错误⼆git设置用户名和邮箱
这种错误是GOPRIVATE 设置错误,使得go去验证库的sum
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论