go mod模式下,import gitlab中的项目

背景

为了go项目能够尽可能复用代码,把一些公用的工具类,公用的方法等放到共用包里统一管理。把共用包放到gitlab的私有仓库中。

遇到的问题

通过https方式,执行go get报了错误。

通过ssh方式,执行go get报了错误。

修改配置,用ssh请求代替http请求:

git config --global url."git@gitlab.com:groupName/projectName.git".insteadOf "https://gitlab.com/groupName/projectName.git"`

配置完成之后,使用go get拉取私有仓库代码。

go get -u -v gitlab.com/groupName/projectName

依然不行,还是报了错。

设置这两个环境变量:

setx GOPRIVATE git.dreame.tech   setx GONOSUMDB git.dreame.tech 

设置了这两个环境变量,依然不行,还是会报错。

这个问题在于公用包go mod中的path路径不对。

公用包的项目不要直接直接go mod init进行初始化。如果需要让其他项目引用。需要通过如下指令初始化。

go mod init gitlab.com/groupName/projectName

因为上面修改配置,用ssh请求代替http请求,导致push代码不能成功,报了如下的错误:

这个错误的原因,看了一下,是因为没有ssh协议的权限。接下来,再来搞这个事情。

添加ssh key。

SSH 秘钥默认储存在账户的主目录下的 ~/.ssh 目录。

到该目录下查找秘钥。没有找到rsa.pub文件。这个文件中存放的是公钥信息。

所以,需要生成密钥信息。打开 Git Bash工具。执行这个命令,连续三次按Enter健。这个应该是为了给这个rsa.pub文件设置密码的。

ssh-keygen -t rsa

id_rsa.pub就是公钥。

登录gitlab添加sshkey。

总结

第一步:

创建一个公用包的项目,比如,core。这里有个点需要注意,不能直接用go mod init进行初始化,否则,引用该包会报路径错误的问题。需要通过这个命令进行初始化(init后面的内容实是ssh链接去掉git@)。执行完之后,push到gitlab上。

go mod init gitlab.com/groupName/projectName

公用包创建的流程到此就完成了。接下来就是引用包需要做些一些配置。

第二步:

修改配置,用ssh请求代替http请求:

git config --global url."git@gitlab.com:groupName/projectName.git".insteadOf "https://gitlab.com/groupName/projectName.git"`

第三步:

需要设置两个环境变量。

setx GOPRIVATE git.dreame.tech   setx GONOSUMDB git.dreame.tech 

 GOPRIVATE 是一个在 Go 语言环境中使用的环境变量,主要用于标识私有仓库,以便 Go 的模块代理(module proxy)和校验数据库(sumdb)知道哪些模块是私有的,从而避免对它们进行公共的代理和校验请求。

GONOSUMDB 是一个环境变量,用于指定不应使用公共校验和数据库 sum.golang.org 检查的模块路径前缀的 glob 模式列表。具体来说,当你在 Go 语言的模块系统中使用私有模块或私有依赖项时,可以设置 GONOSUMDB 来避免 Go 命令对它们进行公共的校验和数据库检查。

通过配置 GONOSUMDB,你可以指定哪些模块路径前缀的模块不需要使用公共校验和数据库进行验证。这有助于在私有环境中使用 Go 模块时提高安全性和效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试八股之MySQL篇2——索引篇

🌈hello,你好鸭,我是Ethan,一名不断学习的码农,很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 🏃人生之义,在于追求,不在成败,勤通…

Springboot阶段项目---《书城项目》

一 项目介绍 本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现,实现了图书商城系统的综合功能和图形界面的显示,可以根据每个用户登录系统后,动态展示书城首页图书,实现了分类还有分页查询&#xff0c…

Linux应用入门(二)

1. 输入系统应用编程 1.1 输入系统介绍 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等。用户经过这些输入设备与Linux系统进行数据交换。这些设备种类繁多,如何去统一它们的接口,Linux为了统一管理这些输入设备实现了一套能兼容所有输入设备的…

怎么压缩pdf pdf在线压缩 pdf文件压缩大小

pdf文件无论在何种设备上打开,PDF文件都能保持其原始的布局和格式,这对于文档共享和打印非常重要。PDF不仅支持文本,还能嵌入图像、视频、音频以及动态链接等元素。PDF文件支持加密和密码保护,可以限制访问、编辑、复制或打印文档…

K8S认证|CKA题库+答案| 5. 创建 Ingress

5 . 创建 Ingress 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node k8s master …

基于Tensorflow卷积神经网络垃圾智能分类系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着城市化进程的加速,垃圾问题日益严重,垃圾分类成为解决这一问题的关…

浅谈金融行业数据安全分类分级

数据安全管理是一项从上而下的、多方配合开展的工作。在进行数据安全管理组织架构建设时,需要从上而下建设;从而全面推动数据安全管理工作的执行和落地;以保证数据安全的合法合规、并长效推动业务的发展和稳定运行。 金融行业机构应设立数据…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

技术驱动未来,全面揭秘 Sui 的生态发展和布局

在不到一年的时间里,由 Mysten Labs 团队创立的 Layer1 区块链 Sui 迅速崛起,成功跃升至去中心化金融(DeFi)的前十名。根据 DeFi Llama 的数据,Sui的总锁定价值(TVL)在短短四个月内增长超过 100…

深度学习之基于Tensorflow+Flask框架Web手写数字识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是深度学习领域中的一个经典问题,也是计算机视觉领域的重要应用之一。…

BFT Robotics - 您的智能自动化伙伴

“买机器人,上BFT” 自动化和机器人技术是推动现代工业发展的重要力量。BFT Robotics以其创新的产品系列和定制化解决方案,为企业提供了一条通往高效、智能生产环境的道路。通过采用BFT Robotics的产品和服务,企业不仅能够提高生产效率&#…

iView实现表格拖拽列宽度,列显示顺序及显示字段

需要实现表格列宽度调整,选择展示表格字段,以及显示顺序,先看效果,每次变动后保存到本地缓存中,也可以与后台配合保存到数据库,实现用户自定义表格. 1.安装vuedraggable实现拖拽 npm i vuedraggable2.新建组件 FilterColumns.vue 我这里默认把操作列放到最后一个并且不允许…

机器学习(五) -- 监督学习(3) -- 决策树

系列文章目录及链接 上篇:机器学习(五) -- 监督学习(2) -- 朴素贝叶斯 下篇:机器学习(五) -- 监督学习(4) -- 集成学习方法-随机森林 前言 tips&#xff1a…

学习Uni-app开发小程序Day23

今天学习了将上一章的所有核算的js,抽离出去,让在其他地方可以直接调用,然后和适配抖音的办法,封装网络请求; 抽离公共方法 如何将公共方法抽离? 1、在根目录创建一个目录,一般起名是:utils 2…

物联网网关在电梯按需维保方案中起到什么作用?梯联网网关

为减少电梯故障和预防电梯事故,保障人身和财产安全,基于物联网技术的电梯按需维保已在全国多地陆续推行,做到了电梯安全隐患预测式排查,处理问题更具科学性、针对性和精准性,有效提升了电梯运行的安全性。那么&#xf…

深度学习之基于YoloV5入侵检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着信息技术的飞速发展,网络安全问题日益凸显。入侵检测系统(IDS&#xff0…

IC设计运营管理ERP适合中小型芯片公司

在数字化、智能化的今天,企业资源计划(ERP)系统已成为企业管理的重要工具。特别是在中小型芯片公司中,IC设计运营管理ERP更是发挥着举足轻重的作用。 首先,ERP系统能够实现对企业内各种资源的集成管理,包括资金、人力资源、设备和…

我的第一个JAVA程序IDEA版

目录 第一步 新建一个空项目第二步 新建模块第三步 新建包第四步 新建类第五步 新建main方法 第一步 新建一个空项目 第二步 新建模块 第三步 新建包 第四步 新建类 然后在包文件夹下新建类 第五步 新建main方法

线程池(C++)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 线程池 实现线程类 #pragma once#include <pthread.h> #include <iostream> #include <vector> #include <string> #include <cstdlib> #include <cstring> #include <functional&…

Python深度学习基于Tensorflow(12)实战生成式模型

文章目录 Deep Dream风格迁移参考资料 Deep Dream DeepDream 是一项将神经网络学习模式予以可视化展现的实验。与孩子们观察云朵并尝试解释随机形状相类似&#xff0c;DeepDream 会过度解释并增强其在图像中看到的图案。 DeepDream为了说明CNN学习到的各特征的意义&#xff0c…