此外,在存储库部分的基本设置屏幕选择可用的存储库包含在新的虚拟存储库中,并将它们移动到选择存储库列表。
对象中的拖放可以对该列表进行重新排序选择存储库列表。
的包括存储库部分显示此虚拟存储库中包含的实际存储库的有效列表。如果您所选择的任何可用存储库本身是虚拟存储库,则包括存储库部分将显示其中包含的本地和远程存储库。的包括存储库List在任何嵌套的虚拟存储库更改时自动更新。
当从虚拟存储库请求工件时,搜索/解析顺序总是:
- 局部存储库
- 远程存储库缓存
- 远程存储库。
这些类别中的顺序由它们在选择存储库列表。
当从虚拟存储库中完成对工件最新版本的请求时,Artifactory将进行搜索所有所包含的存储库,以确保它检索到最新版本。这意味着即使Artifactory在本地或缓存存储库中找到了工件的版本,它仍然会搜索远程存储库,以确保返回最新的版本。如果发现远程存储库具有最新版本,Artifactory将下载它并更新远程存储库缓存。
嵌套
嵌套是Artifactory中的一个独特特性,它促进了使用虚拟存储库的更大灵活性。
您应该注意不要创建嵌套存储库的“无限循环”。Artifactory分析虚拟存储库的内部组成,并在由于无效嵌套而无法解析虚拟存储库时发出警告。
使用包含和排除模式
定义和的能力包括模式和一个不包括模式对于虚拟存储库(特别是在使用嵌套时),您可以使用它来管理组织中的工件请求。
例如,您的组织可能拥有自己的工件,这些工件既驻留在本地存储库内部,也驻留在远程存储库中。为了获得最佳性能,您可能希望从本地存储库而不是远程存储库访问这些构件。要实施此策略,您可以定义一个称为“remote-repos”的虚拟存储库,其中包括您的组织访问的完整远程存储库集,然后使用您的组织的groupID指定一个Excludes 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仓库
除了上述复选框之外,这些存储库类型还提供了以下功能先进的设置:
pom中的清理存储库引用 |
公共pom可能包括对外部存储库的直接引用。如果POM中出现了以下代码示例中的任何一个,Maven将动态地向构建添加一个外部存储库URL,从而绕过Artifactory。 <项目> <库> <库>或<项目> < pluginRepositories > < pluginRepository > 客户端解决方案是使用mirrorOf。详情请参阅额外的“Mirror-any”设置. 该设置使您能够通过自动清理POM文件来确保Artifactory是系统中工件的唯一提供者。可用于此设置的三个值是:
|
||||||
密钥对 |
用于自动签名工件的命名密钥对。 请参考WebStart和Jar签名. |