我在SO上阅读了这个问题 - How to add WAR inside EAR with Maven
在“joelittlejohn”的最高投票回答中 -
“现在创建一个父模块(带有pom)并添加 战争模块和耳模块。确保设置父级 战争和耳朵模块是正确的。当你运行mvn 对于这个新的父级包,战争文件将由战争构建 模块和耳朵文件(包含战争)将由耳朵建造 模块“。
但为什么要创建父母pom?为什么不用一个pom创建一个标准的maven项目。这个单个pom文件包含依赖项&模块,然后从这一个pom文件生成.ear文件?
类似的东西:
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>MyEarFile</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<modules>
<webModule>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<uri>YouWarFile.war</uri>
<bundleFileName>YouWarFile.war</bundleFileName>
<contextRoot>/appname</contextRoot>
</webModule>
</modules>
</configuration>
<dependencies>
<dependency>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<version>your-war-version</version>
<type>war</type>
</dependency>
</dependencies>
</plugin>
答案 0 :(得分:1)
在maven中,为每个要构建的战争都有一个模块。然后.ear文件将包含多个战争。因此,每个模块都提供了很好的职责分离。父pom只是将它们包装在一起。