如何使用Maven在EAR中添加WAR

sta*_*ker 21 java maven-2 java-ee maven maven-ear-plugin

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

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

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

joe*_*ohn 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>
Run Code Online (Sandbox Code Playgroud)

现在在这个耳模块的构建插件中,包括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>
Run Code Online (Sandbox Code Playgroud)

您可以webModule根据需要更改特定配置值.

现在创建一个父模块(with <packaging>pom</packaging>)并将war模块和ear模块添加到它.确保正确设置<parent>战争和耳模块.

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


Koz*_*łek 0

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