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