【问题标题】:1.0.0-SNAPSHOT in two Nexus repositories of one group一组的两个 Nexus 存储库中的 1.0.0-SNAPSHOT
【发布时间】:2017-01-25 10:54:29
【问题描述】:

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

【问题讨论】:

    标签: maven nexus snapshot maven-indexer


    【解决方案1】:

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

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

    【讨论】:

    • 这表示如果第一个仓库(按组排序)有匹配1.0.0-SNAPSHOT的版本,其他的都忽略?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多