Maven多个存储库 - maven究竟如何决定使用哪个repo来获取哪个工件?

时间:2015-05-14 16:56:15

标签: java maven dependencies

我有一个项目需要从两个不同的repos中获取工件。甚至回购中的工件也相互依赖。例如,我的项目可能依赖于工件A(在repo 1中),它取决于工件B(在repo 2中),它再次依赖于工件C(再次在repo 1中)。

我在配置我的settings.xml以使其工作时遇到了很多麻烦(例如,mvn总是试图为工件B转到repo 1,这是错误的)。有人知道这是如何在maven决定的吗?

1 个答案:

答案 0 :(得分:1)

所有存储库均按顺序搜索。

不发生这种情况的第一原因是<mirror>。镜像会覆盖存储库定义。例如,如果您使用<mirrorOf>*</mirrorOf>定义一个镜像,它将处理 all 个请求,而您的其他存储库定义就不再重要了。

第二个原因是其中一个存储库有问题。不包含工件的存储库应使用404进行回答。如果它返回一些乱码或500错误或其他任何内容,则可能会破坏分辨率。