22

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

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

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

4

2 回答 2

47

我会创建一个具有<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>

现在在这个 ear 模块的构建插件中,包括 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 模块添加到它。确保正确设置<parent>战争和耳朵模块。

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

于 2011-03-02T12:50:28.183 回答
0

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

于 2011-03-02T11:59:26.157 回答