完美解决golang go get私有仓库的问题


Posted in Golang onMay 05, 2021

解决golang go get gitlab私有仓库的问题(1.13)

1. 问题描述

require ( 
 git.xxxxxxx.com/middle/user v0.0.1
)

go mod tidy 导入包失败

go get git.xxxxxxx.com/middle/user 失败

go build 有CHECKSUM过程,无法编译

2. 现象分析

go get 不支持代码支持之外的仓库。并且git 调用链过程采取了https

下载过程如果机器设置了GOPROXY,会导致下载失败

编译过程会导致CHECKSUM失败

3. 物料

物料 说明
git.xxxxxxx.com 私有仓库
middle/user.git 用户服务模块

方案

1、给释出的仓库打tag比如v0.0.1,这样仓库地址就可以被识别

2、export GOPRIVATE=git.xxxxxxx.com

go build的时候系统就不会用GOPROXY以及不再校验SUM

3、调整git https===>ssh,注意username换成自己的用户名

[url "username@git.xxxxxxx.com"]
    insteadOf = https://git.xxxxxxx.com

结论

这个问题,google 堪称一绝,够任性

补充:go get拉取私有项目,遇到 404 Not Found解决办法

问题

利用go module进行包管理的时候,要获取远程仓库的最新包,使用go get+项目名获取,提示404 Not Found,如图:

完美解决golang go get私有仓库的问题

原因及解决办法 原因

这是由于go get在进行获取远程包的时候,没有指定用户以及密码,导致没有权限,故失败

办法

go get时添加“-insecure”参数,如图:

完美解决golang go get私有仓库的问题

补充:golang 配置私有仓库

配置使用ssh 访问的仓库

1. go mod 根据go.mod拉取依赖库时

会使用https的方式。为了方便我们也可以通过配置git 全局配置来使用 ssh的方式拉取依赖,下面是配置 https转换为ssh的方式:

git config --global url."git@gitee.com:".insteadOf https://gitee.com/

2. 配置环境变量

来指定私有仓库,用于不走代理的方式

go env -w GOPRIVATE=gitee.com

这里配置私有仓库是gitee

3. 设置代理

go env -w GOPROXY=goproyx.io

常见错误:

1. 错误一

abc@Genricde helloworld % go get -u gitee.com/abc/helloworld/v3 go: gitee.com/abc/helloworld/v3@v3.0.1-5 requires gitee.com/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 'https://gitee.com': terminal prompts disabled

这种错误为没有配置 git 的https转换为 ssh

2. 错误二

go: gitee.com/abc/helloworld@v0.0.0-20210121064045-46ac6dd9cdce requires gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae/go.mod: verifying module: gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae/go.mod: reading https://goproxy.io/sumdb/sum.golang.org/lookup/gitee.com/abc/tsab@v0.0.0-20210208023819-88ebb8c504ae: 410 Gone server response: not found: gitee.com/abc/helloworld@v0.0.0-20210208023819-88ebb8c504ae: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/742008abb4987f237c93efc5ddde7db6dd8d1841fe94aea076046d86a92e26a7: exit status 128: fatal: could not read Username for 'https://gitee.com': terminal prompts disabled

这种错误是GOPRIVATE 设置错误,使得go去验证库的sum

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
go语言求任意类型切片的长度操作
Apr 26 Golang
解决Golang中ResponseWriter的一个坑
Apr 27 Golang
解决golang post文件时Content-Type出现的问题
May 02 Golang
goland设置颜色和字体的操作
May 05 Golang
golang elasticsearch Client的使用详解
May 05 Golang
go xorm框架的使用
May 22 Golang
Golang的继承模拟实例
Jun 30 Golang
手把手教你导入Go语言第三方库
Aug 04 Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 Golang
Go语言安装并操作redis的go-redis库
Apr 14 Golang
Golang 结构体数据集合
Apr 22 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
golang gopm get -g -v 无法获取第三方库的解决方案
May 05 #Golang
go类型转换及与C的类型转换方式
May 05 #Golang
Golang: 内建容器的用法
May 05 #Golang
Go标准容器之Ring的使用说明
May 05 #Golang
go语言中GOPATH GOROOT的作用和设置方式
go设置多个GOPATH的方式
May 05 #Golang
浅谈golang 中time.After释放的问题
May 05 #Golang
You might like
星际争霸中的对战模式介绍
2020/03/04 星际争霸
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
用python实现k近邻算法的示例代码
2018/09/06 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
Python实现DDos攻击实例详解
2019/02/02 Python
HTML的form表单和django的form表单
2019/07/25 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
质检的岗位职责
2013/11/17 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
户外婚礼策划方案
2014/02/08 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
小学生期末评语大全
2014/04/21 职场文书
微电影大赛策划方案
2014/06/05 职场文书
工商局个人工作总结
2015/03/03 职场文书
回复函范文
2015/07/14 职场文书
党章学习心得体会2016
2016/01/14 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
vue中div禁止点击事件的实现
2022/04/02 Vue.js