云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

JFrog Artifactory提供对Go包的支持,提供:

  1. 安全、私有的Go注册表,根据项目或开发团队对Go包进行细粒度访问控制。
  2. 远程Go注册表提供代理和缓存远程Go资源的功能。2022世界杯阿根廷预选赛赛程
  3. 企业特性,如高可用性、多站点开发的存储库复制以及大规模可伸缩性存储的不同选项。
  4. 使用JFrog CLI的完整解决方案,允许您解析和发布Go项目。

安装走

Artifactory需要Go客户端版本1.11.0及以上。

要安装Go客户端,请参考Go编程语言文档

使用自制程序?

你也可以运行以下命令安装Go客户端:

Brew安装go


配置

局部存储库

将Go包部署到本地Go注册表,并启用Go包元数据的计算选择存储库|知识库|本地并设置成为包类型创建本地存储库时。

远程存储库

解决Go仅通过本地或虚拟存储库

Artifactory只支持解析来自虚拟Go语言存储库.要从其他本地或远程Go存储库解析Go,您需要将它们聚合到一个虚拟Go存储库中。

Artifactory中的远程Go存储库作为缓存代理golang.org, GitHub.com或不同Artifactory实例中的Go存储库。

从远程Go注册中心请求的工件(如zip文件)将按需缓存。您可以从远程存储库缓存中删除下载的构件,但是您不能手动将构件部署到远程存储库。

代理GitHub

创建一个远程存储库哪个作为缓存代理github.com,请遵循以下步骤:

  1. 创建一个新的远程存储库并设置成为它的包装类型。
  2. 设置库的关键值,然后输入https://github.com/URL字段,如下所示。
  3. 去设置设置Git提供者GitHub。
  4. 先进的选项卡,输入您的GitHub帐户的用户名和密码。这是必需的,因为GitHub在匿名访问时施加了速率限制。

    从2020年11月起,GitHub在通过REST API进行身份验证时不再接受帐户密码

    根据最新的GitHub更新,REST API不再支持基本身份验证。您的密码必须替换为GitHub私有访问令牌。

  5. 同样在高级选项卡中,勾选宽大主机认证
  6. 点击保存并完成

GitHub代理


使用GOSUMDB

Go Client 1.13引入了对针对中央服务器的模块校验和验证的支持。Artifactory可以作为Go客户端的中央校验和服务器,使用它作为Go代理。对于指向GitHub或其他Artifactory服务器的远程站点,无需任何额外配置即可工作。

可以通过添加属性来覆盖Artifactory用来提供校验和的默认中央服务器artifactory.go.sumdb.url.override =https://.。到你的Artifactory的系统属性

可以通过添加属性来禁用此功能artifactory.go.sumdb.enabled = false到你的Artifactory的系统属性

私有GitHub存储库和一些远程站点不提供校验和。在这些情况下,Go客户端会抱怨缺少校验和。您可以使用gopprivate和GONOSUMDB环境变量在客户端控制此功能。看到1.13模块环境变量详细信息。

虚拟存储库

默认部署存储库

如果你要将你的Go版本发布到一个虚拟存储库,请确保将它聚合的一个本地Go存储库设置为默认部署存储库

Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。
这允许您从为虚拟存储库定义的单个URL访问本地托管的Go包和远程代理的Go注册表中的包。

要将虚拟存储库创建为Go注册表,请使用in的政府模块,在存储库|知识库|虚拟,点击虚拟存储库成为它的包类型,并选择要包含的基础本地和远程存储库存储库部分。

高级配置

一些远程导入路径可以使用go-import在远程存储库响应体上使用meta标记来声明要遵循的远程VCS根的位置。默认情况下,此行为是启用的,Artifactory将遵循这些标记来下载远程模块。要禁用此功能,请取消选中遵循“go-import”Meta Tags复选框。

遵循“go-import”Meta Tags
当选中(默认)时,Artifactory将自动跟随远程VCS根go-import元标签下载远程模块。
“go-import”允许列表
ant样式路径的允许列表模式确定哪一个远程VCS根Artifactory将紧随其后下载远程模块当出现go-import远程存储库响应中的元标记.默认情况下,设置为**也就是说远程模块可以从任何外部下载风投公司源。

例如,如果您希望限制远程go-import模块只能从github.com,您应该删除默认值**模式并替换为* * /github.com/ * *



使用Go与Artifactory

Go和Artifactory的大部分工作都是通过JFrog CLI完成的,这是一个包装Go客户端的瘦客户端。如欲了解更多,请参阅JFrog CLI用户指南

你知道吗?

JFrog CLI本身就是用Go语言编写的。

解决围棋项目

解决Go仅通过本地或虚拟存储库

Artifactory只支持解析来自虚拟Go语言存储库.要从其他本地或远程Go存储库解析Go,您需要将它们聚合到一个虚拟Go存储库中。

go.mod是描述Go包的元数据文件。它包含包的模块名和它的依赖项列表。

为了成功解析包,Go客户端需要一个对应的go.mod要在同一文件夹中找到的文件。

例如,在这个你好,世界启动项目,启动。Mod文件指定一个模块github.com/you/hello,只有一个依赖,rsc。v1.5.2 io /报价。

go.mod
模块github.com/you/hello需要rsc。io /引用v1.5.2

局部解析传递依赖

要完全解析一个Go项目,每个传递依赖都需要有对应的go.mod文件在其所在的同一文件夹中的位置。然而,在许多情况下,去。Mod文件不存在。要解决这种情况下的Go项目,请遵循以下步骤:

  1. 手动从互联网下载所有必需的依赖项到本地计算机
  2. 在本地解析依赖项时运行构建
  3. 将构建的包发布到Artifactory,如下所述。

从这里开始,您可以重新构建项目,同时解析Artifactory的依赖项

构建Go包

要构建Go项目,请使用JFrog CLI。JFrog CLI从互联网上下载项目所需的依赖项,并创建相应的依赖项go.mod文件。当您稍后使用JFrog CLI将包发布到Artifactory时,go。mod文件与包一起上传到Artifactory。

有关详情,请参阅JFrog CLI文档

发布Go项目

Go客户端通过托管Go包源代码的Git存储库工作,并且不提供直接将包发布到Artifactory的方法。

要将包发布到Artifactory,请使用JFrog CLI,如JFrog CLI文档

默认部署存储库

如果你要将你的Go版本发布到一个虚拟存储库,请确保将它聚合的一个本地Go存储库设置为默认部署存储库

版权所有©2022 JFrog Ltd.