一组的两个 Nexus 存储库中的 1.0.0-SNAPSHOT

1.0.0-SNAPSHOT in two Nexus repositories of one group

假设我在 Nexus 中有一个 "public" 组,其中包含两个存储库 "snapshotsA" 和 "snapshotsB"。两者都包含具有相同 Maven 坐标的版本,例如 com.something:artifact:1.0.0-SNAPSHOT。 Nexus 如何解析 SNAPSHOT 引用?它会查看两个存储库以找到最新元素吗?还是找到第一个就满足了?

组存储库在同一 URL 下提供存储库列表。他们从他们服务的所有存储库中获取 maven-metadata.xml 文件,并创建它们的合并表示。他们还有一个通过 maven-indexer 的 Lucene 索引(这是一个由 Sonatype 作为 OSS 贡献给 Apache 的库,它允许存储库管理器或工具,例如 IDE,来处理这个工件索引包含在存储库中)。群组仓库的索引也是群组中每个仓库的索引的合并表示。

据我所知,对于 Nexus 2.x,文件系统是第一个尝试的地方,如果失败,将查询 Lucene 索引以便从各自的代理存储库中解析远程主机。

对于 Nexus Repository 2.x 中的组,我们会解析组排序中的第一个匹配项,除非某种 Repository Routing 或 Repository Target 规则阻止匹配(例如,如果您知道错误版本的该组件存在于该存储库中,而不是不可变地处理组件等...)

在 Nexus Repository 中 3.x 这目前比较简单,因为我们还没有实现 Repository Routing。小组排序中的第一个匹配项是您将得到的。