maven如何处理多个<repository>配置?

时间:2015-12-12 09:12:03

标签: maven maven-3

我对maven越来越熟悉了。但还是有些问题。

我的<repository>中有多个pom.xml

  • maven在下载工件时如何处理这些回购?它会按声明顺序搜索吗​​?

  • 除了明确声明的那些,maven仍会检查central处的默认http://repo.maven.apache.org/maven2/回购?

  • 如果在explicitly configured repo中找不到某些内容,maven会回退到默认的中央回购广告吗?

  • 使用多个回购是好的吗?我有点担心不一致。

以下是<repositories>的{​​{1}}部分:

pom.xml

1 个答案:

答案 0 :(得分:4)

  

maven在下载工件时如何处理这些回购?会吗   按声明顺序搜索?

作为合并设置的一部分的声明顺序(请参阅下一个答案)。我找到了this JIRA票,提供了更多详细信息。

  

除了明确声明的那些,maven仍会检查   http://repo.maven.apache.org/maven2/的默认中央回购?

是的,因为它将由Maven超级POM提供,所有Maven Pom的隐式父级(here是一个官方示例),除非在您的settings.xml中指定(如果您覆盖在超级POM)。您可以使用Maven帮助插件将effective settings Maven应用于您的构建,effective pom maven将实际(有效)运行。
记录here后,repositories元素将被继承。

  

如果在显式配置的repo中找不到某些内容,   将maven回退到默认的中央回购?

如上所述。此外,您还可以通过任何已配置的Maven mirror来影响此机制。例如,您可以将Maven重定向到公司存储库(见下文),而不是查找默认存储库。

  

使用多个回购是好的吗?我有点担心   不一致性。

您可能不需要许多已配置的存储库,但如果默认存储库未提供您要查找的依赖项,则可能需要多个存储库。一个好的方法是拥有一个企业Maven存储库(即Artifactory,Nexus)并使您的本地设置仅指向它。然后,将内部Maven存储库配置为以集中(和受管理)方式指向其他存储库。