使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获得最新版本,请访问JFrog统一平台
配置
局部存储库
将Go包部署到本地Go注册表并启用Go包元数据的计算,设置去成为包类型当您创建本地存储库时。
远程存储库
只能通过本地或虚拟存储库解析Go
Artifactory只支持Go包的解析虚拟Go存储库.要从其他本地或远程Go存储库解析Go,需要将它们聚合到虚拟Go存储库中。
Artifactory中的远程Go存储库可作为GitHub.com或不同Artifactory实例中的Go存储库的缓存代理。
从远程Go注册表请求的工件(如zip文件)将根据需要缓存。您可以从远程存储库缓存中删除下载的构件,但是您不能手动将构件部署到远程存储库。
代理GitHub
要创建远程存储库哪个作为缓存代理github.com,按以下步骤进行:
- 创建一个新的远程存储库并设置去成为它的包类型.
- 设置库的关键值,并输入
https://github.com/
在URL字段,如下所示。 - 在先进的页签,输入GitHub帐户的用户名和密码。这是必需的,因为GitHub在匿名访问时施加了速率限制。
注意:根据GitHub的最新更新,REST API不再支持基本身份验证。您的密码必须替换为GitHub私有访问令牌。 - 同样在Advanced选项卡中,选中宽松的主机认证.
- 点击保存&完成.
使用GOSUMDB
Go Client 1.13引入了对中央服务器上模块的校验和验证的支持。从Artifactory版本6.16.0开始,Artifactory可以作为Go客户端的中央校验和服务器,使用它作为Go代理。对于指向GitHub或其他Artifactory服务器的远程站点,这将无需任何额外配置。
可以通过添加属性' artifact .go.sumdb.url.override=来覆盖Artifactory用来提供校验和的默认中央服务器https://..。到你的Artifactory的系统属性.
可以通过添加属性'artifact .go.sumdb '来禁用该特性。Enabled =false'到您的Artifactory的系统属性.
私有GitHub存储库和一些远程站点不提供校验和。在这些情况下,Go客户端会抱怨缺少校验和。您可以在客户端使用GOPRIVATE和GONOSUMDB环境变量控制该特性。看到进入1.13模块环境变量详情如下。
虚拟存储库
默认部署存储库
如果您正在将Go构建发布到虚拟存储库,请确保将其中一个本地Go存储库设置为默认部署存储库.
Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。
这允许您从为虚拟存储库定义的单个URL访问本地托管的Go包和来自远程代理Go注册中心的包。
创建虚拟存储库作为Go注册表集去成为它的包类型,的基础本地和远程存储库存储库部分。
高级配置
一些远程导入路径可以在远程存储库响应体上使用“go-import”元标记来声明要遵循的远程VCS根目录的位置。默认情况下,该行为是启用的,Artifactory将遵循这些标记来下载远程模块。要禁用此功能,取消选中“Follow 'go-import' Meta Tags”复选框。
遵循“go-import”元标签 |
当勾选(默认)时,Artifactory将自动在“go-import”元标记中遵循远程VCS根来下载远程模块。 |
“go-import”白名单 |
一个蚁式路径的白名单模式那确定哪一个远程VCS根Artifactory将跟随来下载远程模块当在远程存储库响应中出现“go-import”元标记时.默认情况下,设置为'**'这意味着远程模块可以从任何外部下载吗风投公司源。 例如,如果您希望限制远程“go-import”模块只能从github.com,则应删除默认值'**'模式和替换它'* * /github.com/ * *'. |
使用Go与Artifactory
使用Go和Artifactory的大部分工作都是通过JFrog CLI完成的,这是一个封装Go客户机的瘦客户机。如欲了解更多,请参阅JFrog CLI用户指南.
你知道吗?
JFrog CLI本身是用Go编写的
解决Go项目
只能通过本地或虚拟存储库解析Go
Artifactory只支持Go包的解析虚拟Go存储库.要从其他本地或远程Go存储库解析Go,需要将它们聚合到虚拟Go存储库中。
go.mod
是描述Go包的元数据文件。它包含包的模块名和它的依赖项列表。
为了允许成功解析包,Go客户端需要一个对应的go.mod
在同一文件夹中找到的文件。
例如,在这个“Hello Worlds”Go项目中,Go。Mod文件指定一个模块github.com/you/hello
,只有一个依赖项,rsc。v1.5.2 io /报价。
模块github.com/you/hello需要rsc。io /引用v1.5.2
本地解决传递依赖关系
要完全解析Go项目,每个可传递依赖项都需要有相应的依赖项go.mod在文件所在的文件夹中放置文件。然而,在许多情况下,去。Mod文件不存在。要在这种情况下解决一个Go项目,请遵循以下步骤:
- 从internet手动下载所有必需的依赖项到您的本地机器
- 在本地解决依赖关系时运行构建
- 将您构建的包发布到Artifactory,如下所述。
从这一点开始,您可以在从Artifactory解决依赖关系的同时重新构建项目
构建运行包
要构建Go项目,请使用JFrog CLI。JFrog CLI从互联网上下载项目所需的依赖项并创建相应的依赖项go.mod
文件。当您稍后使用JFrog CLI将包发布到Artifactory时,开始。mod文件与包一起上传到Artifactory。
详情请参阅JFrog CLI文档.
发布Go项目
Go客户端通过托管Go包源代码的Git存储库工作,并且不提供直接将包发布到Artifactory的方法。
要将包发布到Artifactory,请使用JFrog CLIJFrog CLI文档.
默认部署存储库
如果您正在将Go构建发布到虚拟存储库,请确保将其中一个本地Go存储库设置为默认部署存储库.