完美解决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 interface判断为空nil的实现代码
Apr 24 Golang
golang http使用踩过的坑与填坑指南
Apr 27 Golang
Golang 空map和未初始化map的注意事项说明
Apr 29 Golang
golang goroutine顺序输出方式
Apr 29 Golang
go设置多个GOPATH的方式
May 05 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
Golang中异常处理机制详解
Jun 08 Golang
Go语言基础知识点介绍
Jul 04 Golang
Go语言实现Base64、Base58编码与解码
Jul 26 Golang
Go语言入门exec的基本使用
May 20 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 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
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php文件缓存方法总结
2016/03/16 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
php实现websocket实时消息推送
2018/03/30 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
Python中生成器和yield语句的用法详解
2015/04/17 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
计算机专业学生求职信分享
2013/12/15 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
四风自我剖析材料
2014/09/30 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
linux目录管理方法介绍
2022/06/01 Servers