完美解决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 相关文章推荐
Golang二维切片初始化的实现
Apr 08 Golang
golang中实现给gif、png、jpeg图片添加文字水印
Apr 26 Golang
golang通过递归遍历生成树状结构的操作
Apr 28 Golang
解决golang在import自己的包报错的问题
Apr 29 Golang
go xorm框架的使用
May 22 Golang
Golang生成Excel文档的方法步骤
Jun 09 Golang
深入理解go缓存库freecache的使用
Feb 15 Golang
Go归并排序算法的实现方法
Apr 06 Golang
golang三种设计模式之简单工厂、方法工厂和抽象工厂
Apr 10 Golang
Golang jwt身份认证
Apr 20 Golang
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
Jun 21 Golang
Go结合Gin导出Mysql数据到Excel表格
Aug 05 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php之Memcache学习笔记
2013/06/17 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
详解node中创建服务进程
2017/05/09 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
Python中安装easy_install的方法
2018/11/18 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
端午节活动策划方案
2014/03/09 职场文书
十八届三中全会感言
2014/03/10 职场文书
决心书格式及范文
2019/06/24 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS