我在这里阅读了很多关于 SO 的问题和答案,但我找不到可以消除我疑虑的答案。
我有一个大型 Java 项目,由 Maven
管理。 (我们称之为 MainProj),它有许多依赖项,其中一些是我和我的团队完成的其他独立项目。
我所做的是为每个相关项目创建一个 Maven 项目,将每个项目安装到我的存储库中,并使用标准 <dependency></dependency>
导入到 MainProj 中。进口。
我现在在 Maven 中发现了继承和聚合,但我不明白的是:
我的 MyProject 适合这种结构吗?还是标准依赖项导入是最佳实践?
我已经阅读了 superPom (或父 pom)的概念,但我无法弄清楚它是如何工作的:我应该创建一个独立的 pom,不与任何 java 代码相关,只管理子项和其他相关的 pom?或者,在我的示例中,superPom 应该是 MainProj 中包含的那个?
- 如果我应该通过继承或聚合导入相关项目?
谢谢
最佳答案
您可以通过两种方式解决此问题。
1)ParentPOM(SuperPOM)
2) 多模块 Maven 项目
super POM
Super POM(父 POM)用于构建项目,以避免使用 pom 文件之间的继承来避免冗余或重复配置。您为父 POM 创建了一个单独的项目,并且应添加所有常见的依赖项和插件。然后在子项目中,你必须添加父POM标识符
<parent>
<groupId>com.parent.demo</groupId>
<artifactId>MavenExamples</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
例如:https://howtodoinjava.com/maven/maven-parent-child-pom-example/
多模块项目
当多个模块是项目的一部分时,首选方法是将它们构建为 Maven 多模块项目,并将构建责任完全委托(delegate)给 Maven。它不需要像 Super POM 这样的新项目。在多模块项目中,将所有相关项目添加到主项目中。主项目 POM 充当顶级 POM(与 Super POM 相同),包含所有常见依赖项和插件。
例如:http://www.codetab.org/apache-maven-tutorial/maven-multi-module-project/
引用号:How to structure a multi-modules Maven project to compile it at once?
关于java - 通过继承和/或聚合重构 Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52052982/