Maven 多个存储库——maven 究竟如何决定哪个存储库获取哪个工件?

Ven*_*tta 5 java dependencies maven

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

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

JF *_*ier 4

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

这没有发生的第一个原因是<mirror>。镜像会覆盖存储库定义。例如,如果您定义一个镜像,<mirrorOf>*</mirrorOf>它将接受所有请求,而您的其他存储库定义就不再重要了。

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