是否可以在多模块项目中将 ear 模块定义为父模块?
我有以下项目结构。
- Module EAR-1 是 ModuleA 和 ModuleB 的聚合
- Module EAR-2 是 ModuleA 和 ModuleC 的聚合
他们都应该产生耳朵来部署。
我不想为父模块创建一个虚拟模块。我想将全局依赖项和配置打包到现有项目中。
哪个模块/pom 是放置所有这些一般信息的正确模块。这个 pom 将成为我的父母 pom。
是否可以在多模块项目中将 ear 模块定义为父模块?
我有以下项目结构。
他们都应该产生耳朵来部署。
我不想为父模块创建一个虚拟模块。我想将全局依赖项和配置打包到现有项目中。
哪个模块/pom 是放置所有这些一般信息的正确模块。这个 pom 将成为我的父母 pom。
看来您有两个不同的问题。
我想 A 是一个罐子(提供服务或公共类),而 B 和 C 是战争,不是吗?
如果项目真的联系在一起,我的意思是你一起构建它们,同时交付它们,当你推广一个版本时,你在所有项目上都这样做,我会推荐以下结构。我从来没有测试过,所以我不知道是否有缺点。
/parent
+--pom.xml
|
+--/moduleA
| +--pom.xml
+--/moduleB
| +--pom.xml
+--/moduleC
| +--pom.xml
+--/app-ear1
| +--pom.xml
+--/app-ear2
| +--pom.xml
\
考虑到在您收集和共享信息或在其中进行管理之前,没有虚拟的父项目。
显然,父级将收集模块和依赖项管理(以简化依赖项版本的管理)和插件管理。它还将包含团队、CI 管理等。实际上,它将包含所有常见信息。
然后,当您要构建整体时,请在父级上使用 mvn 包。当您释放它时,只需在父级上执行 mvn release:perform 即可。
如果您想单独使用/分配它们(一侧的耳 1,另一侧的耳 2),您可能没有相同的结构。
/corporate
+--pom.xml
/moduleA
+--pom.xml
/parent-1
+--pom.xml
|
+--/moduleB
| +--pom.xml
|
+--/app-ear1
| +--pom.xml
\
/parent-2
+--pom.xml
|
+--/moduleC
| +--pom.xml
|
+--/app-ear2
| +--pom.xml
\
Corporate 将由 parent1 和 parent2 扩展,并且在 case 1 中,它具有与 parent 相同的角色,涉及 dependencyManagement、pluginManagement 和 CI 等信息。考虑到你也可以在第一种情况下这样做。
看看这里:Maven2:企业项目的最佳实践(EAR 文件)。您可能会找到更多信息。
在这两种情况下,如果将 WTP 与 eclispse 一起使用,请小心:Multi Module Maven2 Project with WTP。