Creas un nuevo proyecto. El nuevo proyecto es su proyecto de ensamblaje EAR que contiene sus dos dependencias para su proyecto EJB y su proyecto WAR.
Así que en realidad tienes tres proyectos maven aquí. Un EJB. Una GUERRA. Una oreja que une las dos partes y crea la oreja.
Maven puede generar descriptores de implementación o colocarlos dentro del directorio de recursos en la estructura del proyecto EAR.
El maven-ear-plugin es lo que usa para configurarlo, y la documentación es buena, pero no del todo clara si todavía está averiguando cómo funciona maven en general.
Entonces, como ejemplo, podría hacer algo como esto:
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myEar</artifactId>
<packaging>ear</packaging>
<name>My EAR</name>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<version>1.4</version>
<modules>
<webModule>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<bundleFileName>myWarNameInTheEar.war</bundleFileName>
<contextRoot>/myWarConext</contextRoot>
</webModule>
<ejbModule>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<bundleFileName>myEjbNameInTheEar.jar</bundleFileName>
</ejbModule>
</modules>
<displayName>My Ear Name displayed in the App Server</displayName>
<!-- If I want maven to generate the application.xml, set this to true -->
<generateApplicationXml>true</generateApplicationXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<finalName>myEarName</finalName>
</build>
<!-- Define the versions of your ear components here -->
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myWar</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myEjb</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>
</project>
type
comoejb
<type>ejb</type>
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing
y'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing
, por lo que es posible que desee actualizar su excelente respuestaLo que me ayudó mucho fue ejecutar el arquetipo de Maven: generar objetivo y seleccionar uno de los arquetipos, algunos de los cuales parecen actualizarse regularmente (en particular, JBoss parece estar bien mantenido).
Cientos de arquetipos aparecieron en una lista numerada de la cual seleccionar (¡519 a partir de ahora!). El objetivo, aún en ejecución, me pidió que hiciera una selección ingresando un número o ingresando una cadena de búsqueda, por ejemplo:
Ingresé la cadena de búsqueda "oreja", que redujo la lista a solo 8 elementos (a partir de hoy):
Seleccioné "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (ingresando la selección "5" en este ejemplo).
A continuación, el objetivo me pidió que ingresara el groupId, artifactId, los nombres de los paquetes, etc., y luego generó la siguiente aplicación de ejemplo bien documentada:
Después de leer los cuatro archivos POM, que estaban bien comentados, tenía prácticamente toda la información que necesitaba.
fuente
He creado un repositorio de github para mostrar lo que creo que es una buena (o mejores prácticas) estructura de proyecto de inicio ...
https://github.com/StefanHeimberg/stackoverflow-1134894
algunas palabras clave:
Salida de Maven:
fuente
NetBeans IDE define automáticamente la estructura que es casi similar a la sugerida por Patrick Garner. Para usuarios de NetBeans
Archivo -> Nuevo proyecto -> En el lado izquierdo, seleccione Maven y en el lado derecho seleccione la Aplicación empresarial Maven y presione Siguiente -> Solicita nombres de proyectos para war, ejb y configuraciones.
El IDE creará automáticamente la estructura por usted.
fuente
Este es un buen ejemplo de la parte de maven-ear-plugin .
También puede consultar los arquetipos de maven que están disponibles como ejemplo. Si solo ejecuta mvn arquetipo: generate, obtendrá una lista de arquetipos disponibles. Uno de ellos es
fuente
maven-archetype-j2ee-simple
parece innecesariamente compleja en estructura, particularmente con módulos dentro de módulos y módulos separados para cosas como el registro. No entendí la razón detrás de esta estructuraHe estado buscando alto y bajo para un ejemplo de un extremo a otro de una aplicación completa empaquetada basada en maven y finalmente me encontré con esto . Las instrucciones dicen que seleccione la opción 2 cuando se ejecuta a través de la CLI, pero para sus propósitos, use la opción 1.
fuente