Nexus集团订购

时间:2011-04-08 14:14:19

标签: maven nexus

我们正在使用nexus作为存储库管理系统。但是,我们在管理我们的小组时遇到了一个问题。

基本上我们有一个快照版本化工件,它存在于两个存储库中。我们按照我们希望nexus搜索它们的顺序将这两个存储库添加到同一个组中。这符合文档:http://www.sonatype.com/books/nexus-book/reference/config-sect-managing-groups.html

group
    ...
    --> repo1
            ...
            --> com.test.example-1.0.0-SNAPSHOT
            ...
    --> repo2
            ...
            --> com.test.example-1.0.0-SNAPSHOT         
            ...
    ...

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

还有其他人看过这种行为吗? nexus是否不考虑快照存储库的订购?

1 个答案:

答案 0 :(得分:2)

这实际上不是Nexus,而是Maven做到了,会发生什么:

  • Maven从Nexus请求“maven-metatadata.xml”
  • Nexus以给定的顺序(repo1,repo2 ...)循环遍历成员存储库并合并该XML文件。
  • 从合并的XML中,Maven“获取最新快照的知识”,并明确要求它。
  • Nexus无能为力,我打赌你的快照有不同的名字(artifactId-1.0-yyyy.mm.dd.hh.mm.jar,但这两个可能有不同的yyymmdd等),并提供了Maven所要求的

你可以做些什么让Nexus从Maven“隐藏”东西是路由规则。添加一个规则,对于给定的groupId,artifactId或其他(它实际上是regexp)仅从repo1提供服务。