【golang】go mod私有仓库配置

文章目录

  • Golang版本控制
    • go mod使用私有仓库(gitlab)依赖设置
    • 配置代码托管站点
      • Go mod寻找代码仓库原理
      • 使用代理实现代码托管站点访问

Golang版本控制

go version v1.22.0

当我们新建一个go项目时,在项目根目录下执行go mod init可以初始化go.mod文件用于管理包依赖。后续执行go mod tidy更新并下载所有的依赖包。
如果我们没有进行配置,则只能访问公共开源仓库。如果想要下载私有仓库依赖包则需要进行一些配置。

go mod使用私有仓库(gitlab)依赖设置

假如想配置托管站点gitlab.example.cn,按照如下步骤操作:

  1. 设置GOPRIVATE环境变量,防止走代理:
    • go env -w GOPRIVATE=*.gitlab.example.cn/*
    • go env -w GONOPROXY=*.gitlab.example.cn/*
  2. 配置仓库访问权限,有两种方式:
    • 方式一(推荐): 配置git将请求从ssh转换为https:git config --global url."ssh://git@gitlab.example.cn/".insteadof "https://gitlab.example.cn/"
    • 方式二:添加仓库访问Token: git config --global http.extraheader "PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN"
  3. 由于访问不到验证服务器,如下方式二选一:
    • 方式一:go env -w GONOSUMDB=gitlab.example.com/*
    • 方式二:关闭验证服务 go env -w GOSUMDB=off
  4. 如果私有库不支持https协议,设置跳过CA证书校验:go env -w GOINSECURE='gitlab.example.com/*'

配置完成后可以git config -l查看git配置,也可以通过.gitconfig直接编辑git配置:

[http]
	extraheader = PRIVATE-TOKEN:UsQsxy5q_Nqy-pXHtu-V
	
[url "ssh://git@gitlab.example.cn/"]
	insteadof = https://gitlab.example.cn/

通过go env查看环境变量配置,也可以直接通过profile配置环境变量:

export GOPRIVATE=*.gitlab.example.com/*
export GONOPROXY=*.gitlab.example.com/*
export GOINSECURE=*.gitlab.example.com/*
export GONOSUMDB=*.gitlab.example.com/*

配置代码托管站点

Go mod寻找代码仓库原理

https://pkg.go.dev/cmd/go#hdr-Remote_import_paths

如果import路径不是已知的代码托管站点并且也缺少版本控制限定符,则go工具会尝试通过https/http获取导入并在文档的HTML <head>中查找<meta>标记。

元标记的形式如下:

<meta name="go-import" content="import-prefix vcs repo-root">

使用mod时,会识别go-import元标记的附加变体,并且优先级高于那些默认的版本控制系统。该变体使用mod作为内容值中的vcs,如下所示:

<meta name="go-import" content="example.org mod https://code.org/moduleproxy">

此标签表示从 URLhttps://code.org/moduleproxy上的模块代理中获取路径以 example.org开头的模块。有关代理协议的详细信息, 请参阅https://golang.org/ref/mod#goproxy-protocol 。

查找模块路径的存储库:https://go.dev/ref/mod#vcs-find

使用代理实现代码托管站点访问

一般主流的代码托管站站点如github,gitlab,Gitee等,都默认支持返回站点的golang mod元数据。
如果无法对外暴露站点的域名,且甚至无法拥有更改站点访问地址的权限。比如,部署站点的时候是以ip+port的方式访问。这时需要配置一个虚拟的域名作为go mod的引用包路径,这时可以使用Nginx配置站点的内网访问代理,返回带有元标记的静态页面。例如要访问站点gitlab.example.com

if ($args ~* "^go-get=1") {
                        set $condition goget;
        }
        if ($uri ~ "(/[^/]+/[^/]+)(/.*)?") {
                        set $condition "${condition}path";
        }
        if ($condition = gogetpath) {
                        return 200 "<!DOCTYPE html><html><head><meta content='gitlab.example.com$1 git https://gitlab.example.com$1.git' name='go-import'></head></html>";
        }

参考:https://stackoverflow.com/questions/26347516/using-go-get-on-a-personal-git-repo

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

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

相关文章

黑鹰优化算法(BEO)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

目录 原理简介 一、种群初始化 二、围捕行为 三、悬停行为 四、捕捉行为 五、抢夺行为 六、警告行为 七、迁徙行为 八、求偶行为 九、孵化行为 性能测评 参考文献 完整代码 黑鹰优化算法(Black eagle optimizer, BEO)是一种新型的元启发式算法&#xff08;智能优化…

微信小程序的运行机制与更新机制

1. 小程序运行机制 1.1. 冷启动与热启动 冷启动为用户第一次打开小程序时&#xff0c;因为之前没有打开过&#xff0c;这是第一种冷启动的情兑。第二种情况为虽然之前用户打开过&#xff0c;但是小程序被用户主动的销毁过&#xff0c;这种情况下我们再次打开小程序&#xff0…

PADS设置板框提示不闭合的解决办法

一般是选中join&#xff0c;提示不闭合&#xff0c;不能转成板框&#xff0c;其实直接点击close就好了&#xff0c;报错提示里就有提示&#xff0c;让用close命令试试

FT232串口win11打不开,重新安装驱动问题解决。

问题现象&#xff1a;FT232 WIN11打不开&#xff0c;串口识别正在被占用。更改串口号问题无法解决。 解决办法&#xff1a; 卸载驱动&#xff0c; 重启电脑&#xff0c; 去官网下驱动安装问题解决。Drivers - FTDI

卡尔曼滤波公式推导笔记

视频见B站上DR_CAN的卡尔曼滤波器 【卡尔曼滤波器】3_卡尔曼增益超详细数学推导 &#xff5e;全网最完整_哔哩哔哩_bilibili

虚拟机网络配置(静态网络)

解决问题&#xff1a;VMware中创建centOS虚拟机后使用ifconfig没有ip地址&#xff0c;但我想在主机&#xff08;Windows&#xff09;系统下使用shell连接虚拟机从而方便后续交互。 VMware中编辑->虚拟网络编辑器 &#xff08;注意需要管理员身份不然会无法修改&#xff09;…

一篇文章学会【node.js安装以及Vue-Cli脚手架搭建】

一.为什么搭建Vue-Cli (1).传统的前端项目结构&#xff1a; 一个项目中有许多html文件&#xff0c;每一个html文件都是相互独立的&#xff0c; 如果需要在页面中导入一些外部依赖的组件&#xff0c;就需要在每一个html文件中都需要导入&#xff0c;非常麻烦 (2).现在的前端…

老挝-海外媒体发稿:媒体宣发超给力,打造完美产业链

引言 老挝新闻网&#xff08;laosnews&#xff09;通过海外媒体发稿的方式&#xff0c;取得了显著的成就。借助媒体宣发的力量&#xff0c;老挝成功打造了一个完美的产业链&#xff0c;进一步推动了本国经济的发展。本文将探讨老挝-海外媒体发稿的优势以及产业链的构建和发展。…

HarmonyOS开发探索:使用Snapshot Insight分析ArkTS内存问题

识别内存问题 当怀疑应用存在内存问题的时候&#xff0c;首先使用DevEco Profiler的Allocation Insight来度量内存在问题场景下的大小变化以及整体趋势&#xff0c;初步定界问题出现的位置&#xff08;Native Heap/ArkTS Heap/dev等&#xff09;。 在初步识别内存问题出现的位置…

MySQL架构和性能优化

文章目录 一、MySQL架构架构图存储引擎MyISAM引擎特点InnoDB引擎特点管理存储引擎 二、性能优化索引索引管理EXPLAIN 工具使用profile工具 监控 一、MySQL架构 架构图 存储引擎 MySQL提供了多种存储引擎供用户选择&#xff0c;每种存储引擎都有自己的特点和使用场景。 InnoDB…

算法刷题之路之链表初探(二)Leecode21合并两个有序链表

算法刷题之路之链表初探&#xff08;二&#xff09; 今天来学习的算法题是leecode141环形链表&#xff0c;是一道简单的入门题&#xff0c;话不多说&#xff01;直接上&#xff01; 条件&#xff08;Leecode21&#xff09; 重点&#xff01;&#xff01;&#xff01; 我直接把…

primetime中cell和net的OCV

文章目录 前言一、Cell OCV1. POCV coefficient file2. POCV Slew-Load Table in Liberty Variation Format&#xff08;LVF lib&#xff09; 二、Net OCV三、如何check OCV是否已加上&#xff1f;总结 前言 在生产中&#xff0c;外界环境的各种变化&#xff0c;比如PVT&#…

代码随想录第40天|动态规划

完全背包 完全背包物品可以无限使用 01背包核心代码 01背包中的二维dp数组的两个for遍历可颠倒, 而一维dp数组的一定先遍历物品再遍历背包容量状态转移方程(背包容量一定为递减) 完全背包核心代码 (只在完全背包中一维dp数组嵌套顺序可颠倒, 实际题目需要确定遍历顺序) 状…

云计算与生成式AI的技术盛宴!亚马逊云科技深圳 Community Day 社区活动流程抢先知道!

小李哥最近要给大家分享7月7日在深圳的即将举办的亚马逊云科技生成式AI社区活动Community Day &#xff0c;干货很多内容非常硬核&#xff0c;不仅有技术分享学习前沿AI技术&#xff0c;大家在现场还可以动手实践沉浸式体验大模型&#xff0c;另外参与现场活动还可以领取诸多精…

API-本地存储

学习目标&#xff1a; 掌握本地存储 学习内容&#xff1a; 本地存储介绍本地存储分类存储复杂数据类型 本地存储介绍&#xff1a; 以前我们页面写的数据一刷新页面就没有了&#xff0c;是不是? 随着互联网的快速发展&#xff0c;基于网页的应用越来越普遍&#xff0c;同时也…

中医药文化传承进校园活动授牌仪式在石家庄主办举办

青春闪“药”&#xff0c;我心向党。2024年6月30日&#xff0c;由河北省药品医疗器械检验研究院主办的”中医药文化传承进校园活动在石家庄主办。来自河北省各地24所学校作为示范学校现场接牌。 河北省科协科普部部长范玉鑫、河北省教育厅学位管理与研究生处副处长耿立艳、河北…

Springboot项目实训--day1

目录 一、软件安装 二、软件的简单了解 三、基础知识应用 1、四个常用注释 2、尝试新建类 3、控制反转&#xff08;IOC容器&#xff09; 4、返回数据给浏览器 5、浏览器传回数据给服务器 易错点 一、软件安装 需要安装的软件是idea专业版&#xff0c;刚使用的时候可以使…

mac|浏览器链接不上服务器但可以登微信

千万千万千万不要没有关梯子直接关机&#xff0c;不然就会这样子呜呜呜 设置-网络&#xff0c;点击三个点--选择--位置--编辑位置&#xff08;默认是自动&#xff09; 新增一个&#xff0c;然后选中点击完成 这样就可以正常上网了

Python 异常

文章目录 捕获异常捕获常规异常捕获指定异常捕获多个异常 else语法finally语法异常的传递 捕获异常 假设某处可能会出现异常&#xff0c;提前做好准备。 捕获常规异常 所有的异常都会被捕获&#xff0c;不指定异常。 语法&#xff1a; try:可能出错的代码 except:出现异常后…

Open3D 点云快速全局配准FGR算法(粗配准)

目录 一、概述 1.1原理和步骤 1.2关键技术和优势 1.3应用场景 二、代码实现 2.1 关键代码 2.1.1.函数&#xff1a;execute_fast_global_registration 2.1.2调用registration_fgr_based_on_feature_matching函数 2.2完整代码 三、实现效果 3.1原始点云 3.2粗配准后点…