公司Maven POM嵌套结构

时间:2015-09-03 19:30:43

标签: java maven

我正在研究POM Maven公司的结构。我想要一个类似下面例子的结构。现在我有两个问题!

  • 项目是否可以调用父pom? (考虑 它们都安装在本地Maven存储库中)。
  • 如果我向公司POM添加许可证块,是否必须添加到 项目POM是一个新的许可证块吗?

欢迎所有反馈,建议等。提前谢谢!

公司

公司POM

包含组织信息,但不是很多。

<groupId>org.company</groupId>
<artifactId>company</artifactId>
<version>1</version>

<modules>
    <module>company-parent</module>
</modules>

公司家长POM

为所有项目定义基本依赖项/插件(管理)。

<parent>
    <groupId>org.company</groupId>
    <artifactId>company</artifactId>
    <version>1</version>
</parent>

<artifactId>company-parent</artifactId>

项目

项目POM

基于项目的组织信息(开发人员等)。

<parent>
    <groupId>org.company</groupId>
    <artifactId>company-parent</artifactId>
    <version>1</version>
</parent>

<groupId>org.company.project</groupId>
<artifactId>project</artifactId>
<version>1.0</version>

<modules>
    <module>project-parent</module>
</modules>

项目家长POM

定义当前项目使用的依赖项/插件(管理)。

<parent>
    <groupId>org.company.project</groupId>
    <artifactId>project</artifactId>
    <version>1.0</version>
</parent>

<artifactId>project-parent</artifactId>

<modules>
    <module>company-module-1</module>
    <module>company-module-2</module>
    <module>company-module-3</module>
</modules>

项目模块POM

每个模块都有自己的buid,依赖项和东西。

第1单元

<parent>
    <groupId>org.company.project</groupId>
    <artifactId>project-parent</artifactId>
    <version>1.0</version>
</parent>

<artifactId>project-module-1</artifactId>

第2单元

<parent>
    <groupId>org.company.project</groupId>
    <artifactId>project-parent</artifactId>
    <version>1.0</version>
</parent>

<artifactId>project-module-2</artifactId>

第3单元

<parent>
    <groupId>org.company.project</groupId>
    <artifactId>project-parent</artifactId>
    <version>1.0</version>
</parent>

<artifactId>project-module-3</artifactId>

1 个答案:

答案 0 :(得分:1)

Maven子项目不会“调用”父项目。 POM是声明性的,而不是命令式的。与Java类继承类似,子类获取父级的设置,可以覆盖它们或添加新的设置。请参阅Maven, POM Reference, 2.2.2. Inheritance

所以,不,你不必再次在子项目中声明父项目的许可设置,如果它们在那里应该是相同的。