tutorial que proyecto pom plugin partir homepage generar example español desde crear consola con comandos arquetipo java java-ee maven maven-2 maven-ear-plugin

java - que - maven-ear-plugin example



Cómo agregar WAR dentro de EAR con Maven (2)

Tengo EAR con una aplicación y necesito extender esta aplicación con mi propio código que está empaquetado como WAR. ¿Hay algún complemento de Maven que pueda ayudarme a colocar el WAR dentro del EAR?

El procedimiento manual es colocar WAR dentro de EAR y agregar el módulo a application.xml. Me gustaría automatizar eso.

EDITAR: pequeña aclaración: el proyecto WAR está utilizando maven pero para EAR solo tengo el archivo binario, nada más.



Me gustaría crear un nuevo módulo que tiene <packaging>ear</packaging> .

En las dependencias para este módulo de oído, incluye tu módulo de war :

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

Ahora, en los complementos de compilación para este módulo de oído, incluye el plugin de maven-ear como, por ejemplo:

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

Puede cambiar los valores de configuración específicos para webModule según sea necesario.

Ahora cree un módulo primario (con <packaging>pom</packaging> ) y agregue el módulo war y el módulo ear a él. Asegúrate de configurar correctamente el <parent> de los módulos war y ear.

Cuando ejecute el mvn package para este nuevo padre, el módulo war creará un archivo war y el módulo ear creará un archivo ear (que contiene war).