Go 引入自定义包

简介: 想做一个go的公共助手包,但涉及公司业务逻辑不能放在公有仓库,只能引入私有仓库。

Go 引入自定义包

想做一个go的公共助手包,但涉及公司业务逻辑不能放在公有仓库,只能引入私有仓库。

仓库地址:gitlab.xxx.com

配置私有代理

go env -w GOPRIVATE=gitlab.xxx.com

项目中引入

require gitlab.xxx.com/{first}/{second} v{tag}

使用最新提交

go get -u gitlab.xxx.com/{first}/{second}@{提交SHA}

如果目录超过两级会拉取不成功,这时可以使用 replace 来引入

require gitlab.xxx.com/{first}/{second} v{version}

replace gitlab.xxx.com/{first}/{second} v{version} gitlab.xxx.com/{one}/{two}/{three} v{tag}

使用最新提交

require gitlab.xxx.com/{first}/{second} v{version}

replace gitlab.xxx.com/{first}/{second} v{version} gitlab.xxx.com/{one}/{two}/{three} {提交SHA}

然后更新引入就可以了

go mod tidy
go mod vendor

阿里云 codeup 代码拉取不成功

如果你的代码托管平台是阿里云的codeup则会出现代码拉取失败:

Codeup 的代码托管具备多级组的结构组织能力,同时由于 Codeup 不支持全局公开仓库,因此为了企业数据的安全考虑,在使用 Go 的依赖管理时必须使用鉴权。

在 Go 1.13 改进了对 .netrc 身份验证的支持。如果通过 HTTPS 发出请求并且可以找到匹配的 .netrc 条目,Go 会向请求添加 HTTP 基本身份验证凭据。

Codeup上使用 .netrc 的最佳实践

在 Codeup 上申请可用于HTTP验证密钥或者口令。

例如,在 Codeup 上申请的可用于读取仓库账号为 foo,token为 bar。那么对应的 .netrc 配置信息为:

machine codeup.aliyun.com login foo password bar

Linux\macOS

文件应该存放在执行账户的根目录下,即:~/.netrc。

Windows

  • 定义环境变量 %HOME%,值为 %USERPROFILE%

  • 在 %HOME% 路径下新建一个文件 _netrc

  • 在 _netrc 中配置上述的配置信息

machine codeup.aliyun.com
login foo
password bar

结束.

相关文章
|
16天前
|
存储 Go
Golang语言基于go module方式管理包(package)
这篇文章详细介绍了Golang语言中基于go module方式管理包(package)的方法,包括Go Modules的发展历史、go module的介绍、常用命令和操作步骤,并通过代码示例展示了如何初始化项目、引入第三方包、组织代码结构以及运行测试。
18 3
|
1月前
|
编译器 数据库连接 Go
Go Sync 包:并发的 6 个关键概念
Go Sync 包:并发的 6 个关键概念
|
20天前
|
Go 开发者
|
20天前
|
编译器 Go 开发者
|
22天前
|
缓存 Go
Go引用包版本更新但是被引用的包的子包并没有出现在vendor中的问题和解决方案
文章讨论了在Go模块项目中升级依赖包版本时遇到的子包未出现在vendor目录的问题,并提供了直接删除旧版本引用并重新执行`go mod vendor`的解决方案。
22 0
|
1月前
|
存储 SQL Go
一文弄懂Go语言的Context包,值得收藏!
在开发高效的Go应用程序时,处理超时、取消操作和传递请求范围的数据至关重要。Go标准库中的`context`包提供了一套强大的工具,用于在不同层级间传递取消信号、超时和截止时间等信息。本文首先概述了`context`包的核心功能,接着详细介绍了关键方法,如`WithCancel`、`WithDeadline`、`WithTimeout`和`WithValue`的使用场景。通过创建和派生上下文,开发者能更好地管理请求的生命周期,控制长时间运行的操作,并在并发环境中传递必要的数据。
34 1
|
2月前
|
存储 Go
go语言中fmt格式化包和内置函数汇总
【7月更文挑战第10天】本文介绍fmt包和`Errorf`用于创建格式化的错误消息。`fmt`包还涉及一些接口,如`Formatter`、`GoStringer`、`ScanState`、`Scanner`和`Stringer`,支持自定义格式化和输入/输出处理。
41 1
|
2月前
|
存储 Go 索引
在go语言中自定义泛型的变长参数
【7月更文挑战第8天】在Go语言中,由于官方1.18以前的版本不支持泛型,可以通过空接口和反射模拟泛型。泛型适用于通用数据结构和函数,虽牺牲了一些性能,但提高了代码复用和类型安全性。
54 1
|
3月前
|
Go
go安装三方包并使用
go安装三方包并使用
|
3月前
|
中间件 Go
go语言后端开发学习(三)——基于validator包实现接口校验
go语言后端开发学习(三)——基于validator包实现接口校验