跳到元数据的末尾
进入元数据的开始

概述

JFrog容器注册表将其与JFrog Bintray的集成带到了分发存储库的下一步。分发存储库提供了一种简单的方法,可以将工件从JFrog Container Registry移动到Bintray,以便分发给最终用户。与JFrog Container Registry中的其他存储库不同,分发存储库不是按特定的包格式键入的,而是由一组规则来管理,这些规则指定了到达分发存储库的工件应该如何路由到Bintray中相应的存储库。

配置分发存储库

中访问您的分发存储库管理模块下存储库|分发。



页面内容

要设置新的分发存储库,请单击并执行以下主要步骤:

  1. 连接到Bintray-从您的Bintray帐户获取JFrog Container Registry连接和部署包的授权
  2. 配置分布—配置基本分布参数
  3. 配置高级设置-指定高级设置
  4. 定义规则-指定控制该分发存储库如何将包部署到Bintray的规则

连接到Bintray

通过您拥有管理权限的Bintray组织,工件从您的JFrog Container Registry分发存储库同步到Bintray。要建立连接,首先需要授权JFrog Container Registry访问您的Bintray组织。JFrog容器注册表将显示一个弹出对话框,您可以输入您的Bintray凭据。

授权访问Bintray

已经登录到Bintray?

如果你已经登录到你的Bintray帐户,JFrog容器注册将跳过这一步

在授权访问您的帐户后,您需要在该帐户中选择您授权JFrog容器注册中心来管理的组织。

授权组织

Bintray将发出一个您需要复制的授权代码,然后粘贴到您的分发存储库配置中。

授权代码

当您关闭带有授权代码的弹出框时,JFrog容器注册表将显示一个弹出框供您输入。

一旦流程完成,您可以验证JFrog Container Registry已被授权访问您的Bintray组织,在该组织的配置文件页面下的OAuth Applications。

Bintray OAuth应用程序

基本分布参数

将JFrog Container Registry设置为Bintray组织中的授权应用程序之后,就可以设置分发参数了


库的关键 存储库密钥。
一般

描述 存储库的描述。


Bintray产品

使用此存储库分发产品 设置时,指示通过此存储库分布的工件应链接到产品。JFrog Container Registry将创建产品(如果需要的话)并将部署的包链接到产品。
产品名称 产品名称。


Bintray应用程序

客户ID 客户端ID由Bintray分配给JFrog容器注册表作为一个授权的应用程序。
组织 JFrog容器注册中心授权管理分发的Bintray组织。


默认存储库设置
如果JFrog Container Registry在Bintray上创建了一个新的存储库用于分发,该设置指定存储库应该是私有的还是公共的。如果存储库存在,无论设置如何,JFrog容器注册表都不会覆盖它的访问权限。


默认包设置

许可证 指定应附加到通过此存储库分发的任何包的OSS许可证。
风投公司网址 指定包的VCS URL通过这个存储库分发。

高级设置

代理
选择将工件同步到Bintray时要使用的代理。
GPG签署
当设置时,JFrog容器注册表将GPG签名工件同步到Bintray。
GPG密码
用于GPG签名的密码短语。
将属性映射到Bintray属性
指定属性列表,如果它们注释了所分发的工件,则应该将其映射到Bintray中的版本属性。

管理规则

与JFrog Container Registry中的本地、远程和虚拟存储库不同,分发存储库不局限于特定的包类型。相反,您可以根据包类型指定一组规则不同的过滤器,它可以让你细粒度地控制如何将不同的包推送到Bintray进行分发。要查看为存储库定义的规则,请单击规则选项卡。新的分发存储库带有一组预定义的规则,您可以根据需要修改、删除或添加这些规则。

过滤和删除

开始在筛选框中键入规则的名称,以查找您要查找的规则。

将鼠标悬停在某条规则上,单击右侧的删除图标可删除该规则,或选择左侧列中的多条规则,单击删除一次删除几个规则。

规则秩序

规则显示的顺序指定了应用规则的顺序。要更改规则顺序,可以选择一个规则并将其拖动到列表中的新位置。

冲突的规则

虽然可以指定冲突的规则,但由于规则是按照它们出现的顺序应用的,因此应用的第一个规则将优先。

指定规则参数

单击,指定规则参数为了一个新的规则,或者名字您要编辑的规则的。


名字 此规则的逻辑名称


JFrog容器注册表输入
确定该规则应用于JFrog容器注册表中的哪些包的参数。
包类型 指定应该应用此规则的工件包类型。忽略其他包类型的构件
使用令牌 根据所选择的包类型,这将指定可以使用哪些令牌来指定Bintray中的部署路径
库中筛选 通配符表达式,它指定应该对哪些原始源存储库应用此规则。忽略其他存储库中的包。
路径过滤器 通配符表达式,该表达式指定应应用此规则的工件路径。具有不同路径的包将被忽略。


输出Bintray
确定如何将工件部署到Bintray的参数。
存储库 应该将构件部署到其中的Bintray存储库。
工件应该部署到指定的Bintray存储库中的Bintray包。如果包不存在,将创建它
版本 工件应该部署到指定的Bintray包和存储库中的Bintray版本。如果该版本不存在,则将创建该版本。
路径 在指定的存储库中,工件应该部署到Bintray中的路径。

存储库和路径过滤器参数

规则为如何将工件部署到Bintray提供了巨大的灵活性,通过对捕获组使用正则表达式(捕获组可以命名或未命名)。

未命名的捕获组使用占位符标记进行反向引用,而已命名的捕获组使用其名称进行反向引用。

使用未命名的捕获组

中使用的每个正则表达式库中筛选路径过滤器字段JFrog容器注册表输入属性的字段中放置令牌Bintray输出节反向引用它们。

令牌使用以下格式编写:

$ {x}来源:

地点:

路径中的通配符路径过滤器字段应被替换

对象的通配符库中筛选字段应被替换

x 通配符。

例如,

${路径:1}对象中的第一个正则表达式路径过滤器

${repo:2}表示替换库中筛选

示例1

在JFrog容器注册表输入下,设置路径过滤器= jfrog - (. *) . rpm

在“Bintray Output”下,设置存储库= rpm - ${路径:1}

通过这些设置,一个名为jfrog-artifactory.rpm将被部署到Bintray的一个名为rpm-artifactory,这时一个包裹打来了电话jfrog-mission-control.rpm将被部署到Bintray的一个名为rpm-mission-control

示例2

在JFrog容器注册表输入,库中筛选=填词- (. *)

在Bintray Output下,存储库回购:= rpm - $ {1}

通过这些设置:

一个叫做jfrog-artifactory.rpmlibs-release-local将被部署到Bintray的一个名为rpm-release-local。

一个叫做jfrog-artifactory.rpmlibs-snapshot-local,将被部署到Bintray中的一个名为rpm-snapshot-local。

使用命名捕获组

控件中的捕获组库中筛选路径过滤器字段JFrog容器注册表输入的字段中使用捕获组的名称反向引用Bintray输出部分。

命名捕获组使用以下格式写入:

(? <名称> regex)

地点:

名字 捕获组的逻辑名称
正则表达式 定义应该通过筛选器的存储库或路径的正则表达式

一旦定义了捕获组,你可以使用以下格式在Bintray Output部分的字段中反向引用它们:

美元(来源:名称)

地点:

路径中的捕获组路径过滤器字段应该反向引用

对象中的捕获组库中筛选字段应该反向引用

名字 捕获组的名称。
示例1

如果你设置:

在JFrog容器注册表输入,库中筛选= (? < myRepo >——)

在Bintray Output下,存储库=通用- ${回购:myRepo}

然后在存储库中打包建立当地的将被部署到Bintray的一个名为generic-builds

示例2

如果你设置:

在JFrog容器注册表输入,路径过滤器= jfrog - (? < myPath >。*). rpm

在Bintray Output下,存储库= rpm - ${路径:myPath}

然后一个名为jfrog-artifactory.rpm在库libs-release-local将被部署到Bintray的一个名为rpm-artifactory,这时一个包裹打来了电话jfrog-mission-control.rpm将被部署到Bintray的一个名为rpm-mission-control

枚举捕获组

在指定规则参数时,可以使用多个捕获组,并且按照接收它们的顺序枚举它们。

例如,如果你设置:

在JFrog容器注册表输入,路径过滤器= jfrog -(.*).(.*)

在Bintray Output下,存储库= ${路径:2}- ${路径:1}

然后:

jfrog-artifactory.rpm将被部署到Bintray的一个名为rpm-artifactory
jfrog-artifactory.zip将被部署到Bintray的一个名为邮政编码-artifactory
jfrog-mission-control.rpm将被部署到Bintray的一个名为rpm-mission-control
jfrog-mission-control.zip将被部署到Bintray的一个名为邮政编码任务控制

在指定规则参数时,您甚至可以将命名捕获组和未命名捕获组混合在一起,但是,它们仍然按照接收它们的顺序枚举。

展开上面的例子,如果你设置:

在JFrog容器注册表输入,路径过滤器> = jfrog -(? <类型。*),(. *)

在Bintray Output下,存储库= ${路径:2}- ${路径:类型}

“type”被枚举为第一个捕获组,并使用其名称反向引用它。

未命名的捕获组在枚举顺序中是未命名的和第二的,因此使用它的编号2进行反向引用。


分布构件

配置好分发存储库后,将文件放到Bintray的最后一步是调用分发。当您调用分发时,JFrog Container Registry会依次检查为您的分发存储库定义的规则,直到您试图分发的工件通过其中一个规则,然后根据该规则将文件上传到Bintray。一旦发布,该文件也将出现在分发存储库中,以表明它已上传到Bintray。

有两种方法:

  1. 通过UI进行分发
  2. 通过REST API分发

通过UI分发

要通过UI分发文件,请在Artifact Repository Browser中选择它并单击分发在右键菜单中。

JFrog容器注册表将弹出分发对话框,您可以在其中设置分发的最终参数。

分配对话框

分布存储库
工件应该通过分发存储库上传到Bintray。为这个存储库定义的规则将控制文件是否上传/如何上传。
异步分发工件

选中后,文件将异步上传。若要验证向Bintray上传成功,请刷新分发存储库以查看分发文件。

当勾选时,如果上传到Bintray失败,JFrog容器注册表将显示一个错误消息。

若上载至Bintray失败,请参阅JFrog容器注册表日志文件获取详细信息。

发布分布式工件
选中后,将发布上传到Bintray的文件,以供最终用户下载
覆盖现有文件
选中时,上传的文件将覆盖另一个具有相同名称的文件,如果它存在于上传路径中。


取消勾选异步分发工件将产生一个UI屏幕,表示分发过程的进度和摘要:

一旦分发完成,JFrog容器注册表将以成功Section和错误部分。

成功部分显示存储库、包和分布式构件将托管在Bintray中的版本。如果分发过程创建了一个包或版本,这也将在Success部分中显示。在下面的示例中,创建了一个包和一个版本。

成功的部分

如果在将分布式文件移动到Bintray时发生错误,分发对话框还将显示一个错误部分。在下面的示例中,成功部分显示有人试图将文件上传到版本4.0.2在包JSON在库通用的。错误部分提供了解释该失败的详细错误消息。

错误的部分

排练

演练模拟将选定的文件移动到Bintray而不实际分发它们的行为。这是一个很好的方法来确保你的配置是正确的,没有障碍移动你的文件到Bintray。

点击“Dry Run”开始模拟。一旦完成,JFrog容器注册表将显示成功而且错误部分,就好像文件是实际分发的一样。

不要困惑

在演练中,不会移动任何文件;这只是一个模拟