Maven Nexus群排序

Maven Nexus群排序,maven,nexus,Maven,Nexus,我们使用nexus作为存储库管理系统。然而,我们在管理团队方面遇到了一个问题 基本上,我们有一个快照版本的工件,它位于两个存储库中。我们将这两个存储库按照希望nexus搜索它们的顺序添加到同一个组中。这符合文件规定: 因此,通过在repo2之上排序repo1,我们总是希望从repo1下载示例工件。然而,我们在现实中发现,尽管有订购,我们总是从任何一家回购公司下载最新的快照版本。因此,如果repo2有一个更新的快照版本,我们将把它拉下来 还有谁见过这种行为吗?nexus不考虑快照存储库的排序吗?这

我们使用nexus作为存储库管理系统。然而,我们在管理团队方面遇到了一个问题

基本上,我们有一个快照版本的工件,它位于两个存储库中。我们将这两个存储库按照希望nexus搜索它们的顺序添加到同一个组中。这符合文件规定:

因此,通过在repo2之上排序repo1,我们总是希望从repo1下载示例工件。然而,我们在现实中发现,尽管有订购,我们总是从任何一家回购公司下载最新的快照版本。因此,如果repo2有一个更新的快照版本,我们将把它拉下来


还有谁见过这种行为吗?nexus不考虑快照存储库的排序吗?

这实际上不是nexus,而是Maven,发生了什么:

  • Maven从Nexus请求“Maven metatadata.xml”
  • Nexus以给定的顺序(repo1、repo2…)遍历成员存储库,并合并这些XML文件
  • 从合并的XML中,Maven“获得”了最新快照的知识,并明确地要求它
  • Nexus什么都做不了,我打赌你的快照有不同的名称(artifactId-1.0-yyyy.mm.dd.hh.mm.jar,但这两个可能有不同的yyyyymdd等),并且满足Maven的要求

在这里,您可以通过路由规则使Nexus对Maven“隐藏”内容。添加一条规则,对于给定的groupId、artifactId或任何东西(实际上是一个regexp),它只从repo1提供服务。

您真的需要在两个存储库中有相同的快照工件吗?似乎必然会引起混乱。
group
    ...
    --> repo1
            ...
            --> com.test.example-1.0.0-SNAPSHOT
            ...
    --> repo2
            ...
            --> com.test.example-1.0.0-SNAPSHOT         
            ...
    ...