嗯,我正在研究公司的 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/