此外,在存储库部份基本设置界面选择可用的存储库包含在新的虚拟存储库中并将它们移到选择存储库列表。
对象中的拖放可以重新排序此列表选择存储库列表。
的包括存储库节显示此虚拟存储库中包含的实际存储库的有效列表。如果所选的任何可用存储库本身是虚拟存储库,则包括存储库节将显示其中包含的本地和远程存储库。的包括存储库List将自动更新,以防任何嵌套的虚拟存储库发生更改。
当从虚拟存储库请求工件时,搜索/解析顺序总是:
- 局部存储库
- 远程存储库缓存
- 远程存储库本身。
类别中的顺序由它们在列表中显示的顺序控制选择存储库列表。
当从虚拟存储库中完成对工件的最新版本的请求时,Artifactory将进行搜索所有所包含的存储库,以确保它检索到最新版本。这意味着即使Artifactory在本地或缓存存储库中找到工件的版本,它仍然会搜索远程存储库,以确保返回最新的版本。如果发现远程存储库具有最新版本,Artifactory将下载它并更新远程存储库缓存。
嵌套
嵌套是Artifactory的一个独特特性,在使用虚拟存储库时更加灵活。
您应该注意不要创建嵌套存储库的“无限循环”。Artifactory分析虚拟存储库的内部组成,如果虚拟存储库由于无效嵌套而无法解析,将发出警告。
使用包含和排除模式
定义和的能力包括模式和一个不包括模式对于虚拟存储库(特别是在使用嵌套时),提供了一个强大的工具,您可以使用它来管理组织中的工件请求。
例如,您的组织可能有自己的工件,这些工件既托管在本地存储库中,也托管在远程存储库中。为了获得最佳性能,您希望从本地存储库而不是远程存储库访问这些工件。要执行此策略,您可以定义一个名为“remote-repos”的虚拟存储库,其中包括您的组织访问的完整远程存储库集,然后使用您的组织的groupID指定一个excluded Pattern。通过这种方式,任何从远程存储库访问内部工件的尝试都将被拒绝。要了解更多信息,请参见使用排除模式避免安全风险。
考虑另一个例子,在这个例子中,您希望为开发人员定义一个虚拟存储库,但是您希望对他们隐藏某些工件。这可以通过定义不包括模式基于groupId,源或版本。
部署到虚拟存储库
Artifactory支持将工件部署到虚拟存储库。例如,你现在可以使用docker push, npm publish, NuGet push, gem push
Artifactory的REST API和其他工具来将包部署到虚拟存储库。
有关更多细节,请参考部署工件。
高级设置
Artifactory请求可以检索远程工件 |
一个Artifactory实例可以从另一个Artifactory实例中的虚拟存储库请求工件。此复选框指定当尝试解析另一个Artifactory实例请求的工件时,虚拟存储库是否应该通过远程存储库进行搜索。例如,当Artifactory部署在网状(网格)架构中时,您可以使用此特性,并且您不希望Artifactory的所有远程实例充当其他Artifactory实例的代理。 |
Maven, Gradle, Ivy和SBT存储库
除了上述复选框之外,这些存储库类型还提供以下功能先进的设置:
清理POMs中的存储库引用 |
公共POMs可以包括对外部存储库的直接引用。如果POM中出现以下代码示例中的任何一个,Maven将动态地向构建添加一个外部存储库URL,从而绕过Artifactory。
对此的客户端解决方案是使用mirrorOf。详情请参阅附加的“镜像-任意”设置。 该设置使您能够通过自动清理POM文件来确保Artifactory是系统中唯一的Artifacts提供者。可用于此设置的三个值是:
|
||||||
密钥对 |
用于自动对工件签名的命名密钥对。 详情请参阅WebStart和Jar签名。 |