Proyecto EAR
El proyecto inicial que crearemos será un proyecto EAR.
EAR (Enterprise Archive) es un formato de archivo utilizado por Java EE, para el envasado de uno o más módulos en un solo archivo para que el despliegue de los diferentes módulos en un servidor de aplicaciones ocurra simultáneamente, de manera ordenada y coherente. También contiene archivos XML llamados descriptores de despliegue que describen cómo implementar los módulos. Ant, Maven o Gradle se utilizan para construir proyectos EAR.
Para crear un proyecto EAR, crearemos nuevo proyecto Maven – Enterprise Application
Una vez seleccionado el proyecto, deberemos indicar los el nombre de los paquetes, compañía y el ID del artefacto, hay que rellenar a vuestro gusto. Si pulsamos continuar aparecerá esta pantalla:
Aquí tendremos la opción de establecer el servidor donde desplegaremos el proyecto EAR, la versión de Java EE y además Netbeans nos permite la opción de crear dos proyectos dentro de nuestro EAR:
- Un módulo EJB, que puede servir para crear toda la lógica de negocio, persistencia, modelo de datos, etc.
- Una módulo WAR que contendrá la interfaz web de nuestra aplicación.
Si pulsamos Finalizar, en nuestro navegador de proyectos, tendremos la siguiente estructura:
Como podemos ver, Netbeans nos ayuda mucho en la creación de los proyectos, además de los POM, dependencias y demás parámetros de configuración.
¿Qué tendremos en nuestro pom.xml de cada proyecto?
pom.xml (ear project):
<?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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>mavenproject1</artifactId> <groupId>es.jesramgue.earproject</groupId> <version>1.0-SNAPSHOT</version> </parent> <groupId>es.jesramgue.earproject</groupId> <artifactId>mavenproject1-ear</artifactId> <version>1.0-SNAPSHOT</version> <packaging>ear</packaging> <name>mavenproject1-ear</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.8</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>es.jesramgue.earproject</groupId> <artifactId>mavenproject1-ejb</artifactId> <version>1.0-SNAPSHOT</version> <type>ejb</type> </dependency> <dependency> <groupId>es.jesramgue.earproject</groupId> <artifactId>mavenproject1-web</artifactId> <version>1.0-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> </project>
pom.xml (ejb project):
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>mavenproject1</artifactId>
<groupId>es.jesramgue.earproject</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>es.jesramgue.earproject</groupId>
<artifactId>mavenproject1-ejb</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>ejb</packaging>
<name>mavenproject1-ejb</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
pom.xml (war project):
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>mavenproject1</artifactId>
<groupId>es.jesramgue.earproject</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>es.jesramgue.earproject</groupId>
<artifactId>mavenproject1-web</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>mavenproject1-web</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>




Deja un comentario