如何使用Maven在EAR中添加WAR

时间:2011-03-02 11:48:13

标签: java java-ee maven maven-2 maven-ear-plugin

我有一个带有应用程序的EAR,我需要使用我自己的代码扩展这个应用程序,该代码打包为WAR。是否有maven插件可以帮助我将WAR置于EAR中?

手动过程是将WAR放入EAR并将模块添加到application.xml。我想自动化。

编辑:小澄清 - WAR项目正在使用maven但是对于EAR我只有二进制文件了。

2 个答案:

答案 0 :(得分:46)

我创建了一个具有<packaging>ear</packaging>

的新模块

在此ear模块的依赖项中,包含war模块:

<dependency>
    <groupId>com.your.group.id</groupId>
    <artifactId>your-war-artifact</artifactId>
    <version>your-war-version</version>
    <type>war</type>
</dependency>

现在在这个耳模块的构建插件中,包括maven-ear-plugin,例如:

<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>
</plugin>

您可以根据需要更改webModule的具体配置值。

现在创建一个父模块(带<packaging>pom</packaging>)并将war模块和ear模块添加到它。确保正确设置war和ear模块的<parent>

当您为这个新父项运行mvn package时,war模块将构建一个war文件,并且ear模块将构建一个ear文件(包含war)。

答案 1 :(得分:0)

将WAR添加为依赖项并使用maven ear plugin。然后使用ear:generate-application-xml目标,最后使用ear:ear目标。