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 模块时提高安全性和效率。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android:使用Kotlin搭建MVC架构模式

一、简介Android MVC架构模式 M 层 model ,负责处理数据,例如网络请求、数据变化 V 层 对应的是布局 C 层 Controller, 对应的是Activity,处理业务逻辑,包含V层的事情,还会做其他的事情,导致 ac…

WebRTC-SFU服务器-Janus部署【保姆级部署教程】

一、SFU WebRTC SFU(Selective Forwarding Unit)构架是一种通过服务器来路由和转发WebRTC客户端音视频数据流的方法。这种构架的核心特点是将服务器模拟成一个WebRTC的Peer客户端,从而实现了音视频流的直接转发。 在SFU构架中,服务器作为中心节点,但并不负责音视频流的混…

TG5032CGN TCXO 超高稳定10pin端子型适用于汽车动力转向控制器

TG5032CGN TCXO / VC-TCXO是一款应用广泛的晶振,具有超高稳定性,CMOS输出和使用晶体基振的削波正弦波输出形式。且有低相位噪声优势,是温补晶体振荡器(TCXO)和压控晶体振荡器(VCXO)结合的产物,具有TCXO和VCXO的共同优点&#xff0…

海山数据库(He3DB)代理ProxySQL使用详解:(一)架构说明与安装

一、ProxySQL介绍 1.1 简介 业界比较知名的MySQL代理,由ProxySQL LLC公司开发并提供专业的服务支持,基于GPLv3开源协议进行发布,大部分配置项可动态变更。后端的MySQL实例可根据用途配置到不同的hostgroup中,由ProxySQL基于7层网络协议,将来…

Python 实现Word (DOC或DOCX)与TXT文本格式互转

目录 引言 安装Python库 使用Python将Word转换为TXT文本格式 使用Python将TXT文本格式转换为Word 引言 Word文档和TXT文本文件是日常工作和生活中两种常见的文件格式,各有其特点和优势。Word文档能够保留丰富的格式设置,如字体、段落、表格、图片等…

格雷母线与卸料小车的非接触式定位技术

在现代化的工业生产中,自动化与智能化已成为提高生产效率、降低成本的关键手段。特别是在钢铁、矿山等重工业领域,卸料小车作为物料搬运的重要设备,其定位精度和工作效率直接影响了整个生产线的运行状况。格雷母线高精度位移测量系统的引入&a…

worklist配置调试日志记录

工作记录用,不拘小节! 设备请求日志 2024-05-23 09:03:14,503 [WorkListServer: 10.87.232.253 [18]] INFO - LISTMWL Request from [gehc]: (0008,0005) CS [ISO_IR 100] # 10 Specific Character Set 1-N (0008,0020) DA [] …

C++ | Leetcode C++题解之第108题将有序数组转换为二叉搜索树

题目&#xff1a; 题解&#xff1a; class Solution { public:TreeNode* sortedArrayToBST(vector<int>& nums) {return helper(nums, 0, nums.size() - 1);}TreeNode* helper(vector<int>& nums, int left, int right) {if (left > right) {return nu…

12V-24V转8.4V5A同步降压恒压WT6020

12V-24V转8.4V5A同步降压恒压WT6020 WT6020是一款高效率的DC/DC转换器&#xff0c;采用抖动频率和平均电流模式架构&#xff0c;是单片同步降压设计。具有优秀的线路和负载调节能力&#xff0c;最大输出电流可达10A。 工作电压范围为7V至30V&#xff0c;可调输出电压为1V至20…

php之web开发

目标 实现一款具有常用大部分功能的WEB应用&#xff0c;并初步了解WEB漏洞原理 登录功能&#xff1a; 1、基于前端的登录功能 <!DOCTYPE html> <html> <head> <title>简单登录功能</title> </head> <meta charset"UTF-8"…

拓展类型——枚举

枚举的作用 枚举通常用来约定某个变量的取值范围 使用字面量和联合类型也可以达到约束变量的作用&#xff0c;但是会有不方便的情况 使用字面量和联合类型约束变量的问题 逻辑含义和真实的值会产生混淆&#xff0c;如果修改了真实值&#xff0c;会造成大量代码需要修改 例&…

YOLOv8改进 | 图像去噪篇 | 单阶段盲真实图像去噪网络RIDNet辅助YOLOv8图像去噪(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是单阶段盲真实图像去噪网络RIDNet,RIDNet(Real Image Denoising with Feature Attention)是一个用于真实图像去噪的卷积神经网络(CNN),旨在解决现有去噪方法在处理真实噪声图像时性能受限的问题。通过单阶段结构和特征注意机制,…

ESP32基础应用之使用手机浏览器作为客户端与ESP32作为服务器进行通信

文章目录 1 准备2 移植2.1 softAP工程移植到simple工程中2.2 移植注意事项 3 验证 1 准备 参考工程 Espressif\frameworks\esp-idf-v5.2.1\examples\wifi\getting_started\softAP softAP工程演示将ESP32作为AP&#xff0c;即热点&#xff0c;使手机等终端可以连接参考工程 Esp…

1941springboot VUE 服务机构评估管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE服务机构评估管理系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架和VUE完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代…

夏天晚上热,早上凉怎么办?

温差太大容易引起感冒 1.定个大概3点的闹钟&#xff0c;起来盖被子。有些土豪可以开空调&#xff0c;我这个咸鱼没有空调。 2.空调调到合适的温度&#xff0c;比如20几度。

使用 Sonatype Nexus Repository Manager 如何安装npm.md

1. 安装与启动 Nexus2. 登录 Nexus Web UI3. 创建 npm 仓库4. &#xff08;可选&#xff09;配置 npm 代理仓库5. 创建 npm 仓库组6. 配置 npm 客户端7. 测试和使用 Sonatype Nexus Repository Manager (通常简称 Nexus) 是一个强大的二进制管理系统&#xff0c;用于存储和管理…

二分查找法

二分查找法 一、标准二分查找法二、改动版二分查找法三、平衡版二分查找法四、二分查找法查找最左元素五、二分查找法查找最右元素六、二分查找法之返会插入位置 一、标准二分查找法 /*** 标准二分查找*/public static int binarySearch(int[] arr, int target) {int i 0, j …

6.1 if语句

计算机语言和人类语言类似&#xff0c;人类语言是为了解决人与人之间交流的问题&#xff0c;而计算机语言是为了解决程序员与计算机之间交流的问题。程序员编写的程序就是计算机的控制指令&#xff0c;控制计算机的运行。借助于编译工具&#xff0c;可以将各种不同的编程语言的…

2024 Google I/O 宣布正式支持 Kotlin Multiplatform ,那 KMP 是什么?它的未来在哪里?

基于最近一直有人和我提 KMP &#xff0c;那就简单聊聊。 2024 Google I/O 正式官宣了支持 KMP &#xff0c;而一般意义上的 KMP 指的就是 Kotlin Multiplatform &#xff0c;它是 Google Workspace 团队的一项长期「投资」项目&#xff0c;这里有个重点&#xff0c;那就是 Ko…

Day 59 503.下一个更大元素Ⅱ 42.接雨水

下一个更大元素Ⅱ 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序&#xff0c;这个数字之后的第一个比它更大的数&#xff0c;这意味着你应该循环…