我对maven越来越熟悉了。但还是有些问题。
我的<repository>
中有多个pom.xml
。
maven在下载工件时如何处理这些回购?它会按声明顺序搜索吗?
除了明确声明的那些,maven仍会检查central
处的默认http://repo.maven.apache.org/maven2/
回购?
如果在explicitly configured repo
中找不到某些内容,maven会回退到默认的中央回购广告吗?
使用多个回购是好的吗?我有点担心不一致。
以下是<repositories>
的{{1}}部分:
pom.xml
答案 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存储库配置为以集中(和受管理)方式指向其他存储库。