为什么在生成ear文件时使用父pom文件?

时间:2012-03-08 16:51:52

标签: java-ee maven maven-2

我在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>

1 个答案:

答案 0 :(得分:1)

在maven中,为每个要构建的战争都有一个模块。然后.ear文件将包含多个战争。因此,每个模块都提供了很好的职责分离。父pom只是将它们包装在一起。