Maven 2 关于Maven2存储库镜像的问题

Maven 2 关于Maven2存储库镜像的问题,maven-2,Maven 2,我已经使用ApacheArchiva建立了一个Maven 2存储库(称为“开发存储库”),它保存了我的私有项目的工件 如果我为自己的项目构建一个工件,比如说group1:cat,cat依赖于{group1:dog,commons:collection}。group1:cat和group1:dog位于dev存储库中,commons:collection位于中心 现在,当我构建group1:cat时,maven将获取group1:dog和commons:collection,问题是maven总是在d

我已经使用ApacheArchiva建立了一个Maven 2存储库(称为“开发存储库”),它保存了我的私有项目的工件

如果我为自己的项目构建一个工件,比如说group1:cat,cat依赖于{group1:dog,commons:collection}。group1:cat和group1:dog位于dev存储库中,commons:collection位于中心


现在,当我构建group1:cat时,maven将获取group1:dog和commons:collection,问题是maven总是在dev-repository和central-repository中搜索依赖项,但我想要的是它只在dev-repositories中搜索group1:dog,而只在central-repositories中搜索commons:collection。我有中央镜像,比如central-mirror1和central-mirror2,所以如何配置maven以便它搜索commons:collection in default central repository和central-mirror-1,2等,根本不会打扰我的开发人员存储库?

我的安装程序使用我的本地Archiva实例来代理中央存储库(和其他第三方存储库)。在我的超级pom中,我将我的存储库更改为只指向我的本地Archiva,而不指向搜索中心。所有东西都是通过我的本地代理进来的

这不是你想要的,但我认为这是一个合适的设置

然后,您可以使用Archiva的黑/白列表告诉它在哪里搜索东西

(…)我想要的是它只在dev存储库中搜索group1:dog,而只在中央存储库中搜索commons:collection

我不知道如何做到这一点,我认为这是不可能的。maven如何知道给定工件的“源”存储库

但事实上,你为什么不让一切都通过阿奇瓦?不在所有请求中使用Archiva有什么意义?如果您不想让maven检查两个存储库的依赖关系,那么这似乎是一个非常明显的解决方案。此外,在公司环境中,人们通常不想直接依赖central(例如,如果它崩溃了,你就不能再工作)。不,真的,我不明白

因此,我将Archiva声明为所有存储库的镜像,如下所示:

<settings>
  ...
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

...
内部存储库
在repo.mycompany.com上运行的Maven存储库管理器
http://repo.mycompany.com/proxy
*
...