Super POM在配置中来自哪里

时间:2014-04-10 11:34:52

标签: java eclipse maven parent-pom

当我在Eclipse中查看我的有效pom时,我可以看到一堆依赖项和一个标签,说明这是我们的企业超级pom,它必须构成每个项目的一部分。

我实际上无法确定超级pom在配置中发挥作用的地方。我查看了maven中的settings.xml,它有远程存储库和内部存储库的列表 - 但似乎无法在任何地方看到指向超级pom的链接。

这是一个由内部原型构建的多模块maven项目,并且父模块定义了一个父工件......但是当我浏览父工件时,我仍然无法看到超级pom是如何发挥作用的。

任何建议表示赞赏。

此致

2 个答案:

答案 0 :(得分:3)

超级pom由<parent>标签定义:

<parent>
  <groupId>com.mycompany</groupId>
  <artifactId>mvn</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</parent>

答案 1 :(得分:1)

所有pom隐含地继承自maven分布中存在的super pom。这个pom包含所有maven项目的默认值,可以在你的maven项目中覆盖它们。但是大部分默认值都没有被覆盖,因为它们通常构成maven的约定部分,因为它是一个更适合于约定的构建工具。例如,默认构建目录为target,因此此配置在超级pom中显示为

........
<directory>${project.basedir}/target</directory>
.........

有关此pom的更多信息和实际位置,请参阅herehere