go.mod 使用私有依赖

本文介绍了如何在Golang项目中使用go.mod来管理私有依赖,特别是对接私有GitLab的情况。配置包括启用GO111MODULE,设置GOPRIVATE和GOINSECURE以允许HTTP访问,以及通过git配置使用SSH方式拉取私有项目。在自动化构建时,可能会遇到SSH fingerprint问题,需要确保已记录相关SSH信息。

在这里插入图片描述

背景

启动了一个新项目,做一个运维小工具,准备尝试一下 Golang。

因需要对接内部的 RABC 系统,索性封装了一个 SDK,也方便之后新项目的对接使用。

那么,怎么能够使用 go.mod 来使用私有的依赖呢?

环境

  • gitlab(私有)
  • golang v1.16.3

解决方案

我们需要对 Golang 做一些简单的配置。

1、使用 go module

go env -w GO111MODULE="on"

2、配置 GOPRIVATE,当使用 go get 时,指定的域名会直接通过 git 拉取。

go env -w GOPRIVATE=gitlab.***.com

3、配置 GOINSECURE,我们当前使用的是 http,而 go get 默认使用 https, 配置之后,指

go package 是指在 Go 语言中,将一组相关的文件(通常是一个目录)组织起来,作为一个独立的模块。一个 go package 可以包含多个 go 文件。每个 go package 通常会定义一些功能、变量、函数和方法供其他代码模块使用。 import 是用来在 Go 代码中引入其他的包(包括标准库包和第三方包)。通过 import,我们可以在当前的 go package 中使用被导入的包中定义的函数、变量和类型。使用 import 之后,我们可以通过包名加函数名的方式来使用被导入包中的内容。 go.modGo 语言新增的用于管理依赖关系的文件。它会记录当前项目所依赖的其他包的名称和版本号。我们可以使用 go mod init 命令来初始化一个 go.mod 文件,并通过 go mod tidy 命令自动分析代码中的依赖关系并更新 go.mod 文件。 私有包引入是指在引入其他包时,只在当前 go package 内部可见,而不对外暴露。在 Go 语言中,如果包的名称以小写字母开头,则表示该包是私有包,只能在同一个包内部使用。其他的包无法引用和访问私有包中的内容。这种设计可以有效地保证包的封装和隔离,同时避免了不必要的包依赖和复杂度。 对于私有包引入,我们可以在同一个 go package 内部直接使用,而无需使用 import 进行引入。这样做的好处是可以提高代码的安全性和可维护性,同时也可以减少出现命名冲突的可能性。但是私有包只能在当前 go package 内部使用,无法被其他 go package 引用。所以,在设计和组织软件包结构时,需要合理地划分和命名包,以便满足不同包之间的依赖关系。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值