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.
Agregue WAR como dependencia y use el complemento de oreja de Maven . Luego usa ear:generate-application-xml objetivo ear:generate-application-xml y finalmente ear:ear objetivo.
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).