java - 公司Maven POM嵌套结构

标签 java maven

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

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

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

公司

公司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>

最佳答案

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

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

关于java - 公司Maven POM嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383975/

相关文章:

java - Firebase 实时数据库隐私最佳实践

java - maven-surefire-plugin 的 forkedProcessTimeoutInSeconds 的默认值是多少?

Java 9 : module not found: primefaces

java - Log4j2 Java 无法导入 org.apache.logging.log4j.core

java - Maven AppAssembler 找不到类

java - 如何在部署 OSGI 包时修复缺失的需求

Java HashMap 获取值(哪个值最多)

java - 删除动态 jTextFields 的最后一个逗号

java - Spring Bean 属性上的 JSR-303 注解

java - 安卓:IOException:权限被拒绝