如果没有合适的资源可供参考,开始使用 Go 中的私有模块可能会成为一项艰巨的任务。这是因为 Go 模块不是从中央存储库存储或提供的,但可以从不同的存储库中提取它们;一个例子是 Github。
将公共 Go 包导入到您的项目中就像运行单个命令一样简单:
$ 去获取 github.com/author/module-name
另一方面,在 Go 中设置和使用私有模块将需要更多步骤。使用私有模块,您可以在您选择的存储库中托管私有包并使用它,而不必使代码公开访问。
要设置私有模块,首先创建一个目录并导航到该目录。通过运行以下命令初始化模块:
$ go mod init github.com/author/module-name
下一步是提交,为提交添加一个标签,这有助于对模块进行版本控制,并将模块推送到存储库,在本例中为 Github。
在此示例中,模块是项目的根,但在某些情况下,另一个 go 模块是根,并且您可以拥有子模块。对于子模块,上面的命令将转换为以下内容:
$ go mod init github.com/author/root-module/module-name
获取私有存储库
该模块现在托管在存储库中,但它是私有的,因此需要进行身份验证才能在项目中提取和使用它。项目可以通过使用本地环境变量进行身份验证、通过 Github 操作或 dockerfile 来访问模块。
在本文中,我们将重点讨论在利用本地环境变量的同时访问私有存储库。这可以通过以下两个选项来实现。
在这两个选项中,都需要设置 GOPRIVATE 环境变量。 GOPRIVATE 环境变量帮助 Go 命令确定正在获取的模块是公共的还是私有的。它包含根据存储库包名称检查的模式,并且任何与此变量匹配的包名称都不会通过公共 Go 缓存服务器获取。
通过在模块目录中运行以下命令来设置并导出 GOPRIVATE 环境变量。
$ export GOPRIVATE=github.com/author/module-name
或者,您可以使用 Go env 命令设置 GOPRIVATE 变量,如下所示:
$ go env -w GOPRIVATE=github.com/author/module-name $ go env GOPRIVATE
*将 git 配置为通过 SSH 而不是 HTTP(S) 获取
*
Go get 命令使用 http 或 https 从 git 获取模块。为了确保它使用 ssh 来拉取模块,您可以通过编辑 git 配置文件或使用以下命令来实现:
$ go env -w GOPRIVATE=github.com/author/module-name $ go env GOPRIVATE
*使用个人访问令牌配置 Go
*
设置 GOPRIVATE 变量后,此选项需要您设置并导出另外两个变量。
GITHUB_ACCESS_TOKEN 变量设置为个人访问令牌,您可以从 Github 设置中创建:个人访问令牌。确保为令牌命名并在范围部分选择存储库。
要设置和导出的另一个变量是设置为 localhost 的 GONOPROXY 变量,突出显示该 url 不应与校验和数据库进行比较。
$ git config --global url."git@github.com:author/module-name".insteadOf "https://github.com/author/module-name"
最后,更新全局 git 配置以使用生成的个人令牌。
$ export GONOPROXY=localhost $ export GITHUB_ACCESS_TOKEN=<your-token> </your-token>
完成这些配置后,您现在应该能够使用上述任一选项获取私有模块并在项目中使用它。要获取模块,请运行 go run 。用于构建项目的命令,该项目会在添加项目依赖项之一时依次拉取模块,或者运行指定模块 github 路径的 go get 命令。
以上是在 Go 中设置和使用私有模块的详细内容。更多信息请关注PHP中文网其他相关文章!

本文演示了创建模拟和存根进行单元测试。 它强调使用接口,提供模拟实现的示例,并讨论最佳实践,例如保持模拟集中并使用断言库。 文章

OpenSSL,作为广泛应用于安全通信的开源库,提供了加密算法、密钥和证书管理等功能。然而,其历史版本中存在一些已知安全漏洞,其中一些危害极大。本文将重点介绍Debian系统中OpenSSL的常见漏洞及应对措施。DebianOpenSSL已知漏洞:OpenSSL曾出现过多个严重漏洞,例如:心脏出血漏洞(CVE-2014-0160):该漏洞影响OpenSSL1.0.1至1.0.1f以及1.0.2至1.0.2beta版本。攻击者可利用此漏洞未经授权读取服务器上的敏感信息,包括加密密钥等。

本文探讨了GO的仿制药自定义类型约束。 它详细介绍了界面如何定义通用功能的最低类型要求,从而改善了类型的安全性和代码可重复使用性。 本文还讨论了局限性和最佳实践

本文讨论了GO的反思软件包,用于运行时操作代码,对序列化,通用编程等有益。它警告性能成本,例如较慢的执行和更高的内存使用,建议明智的使用和最佳

本文讨论了GO中使用表驱动的测试,该方法使用测试用例表来测试具有多个输入和结果的功能。它突出了诸如提高的可读性,降低重复,可伸缩性,一致性和A

本文使用跟踪工具探讨了GO应用程序执行流。 它讨论了手册和自动仪器技术,比较诸如Jaeger,Zipkin和Opentelemetry之类的工具,并突出显示有效的数据可视化


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),