Generalmente y dependiendo de la complejidad del proyecto que manejemos, en muchas ocasiones no vamos a necesitar de algunas acciones como ejecutar Test Unitarios o subir la versión de nuestro proyecto a un repositorio Nexus para que esté accesible para otros proyectos.
Es por esto, que vamos a modificar nuestro proyecto para que tenga una serie de acciones simples, que probablemente nos basten para la mayoría de proyectos, estas acciones serían:
- Compilar el proyecto
- Empaquetar el proyecto
- Desplegar el proyecto en un servidor de aplicaciones
Lo primero que haremos será vaciar de plugins que no vamos a necesitar nuestro fichero pom.xml.
Por ello vaciaremos la sección de plugins del fichero pom.xml:
<build> <plugins> </plugins> </build>
Como podéis observar no he dejado la parte de pluginManagement esto es debido a que como nuestro proyecto consta de un solo proyecto Maven (no tiene módulos) no es necesario declarar ningún plugin para los descendientes.
El primer plugin que introduciremos, será para la compilación. Si lo recordamos, este plugin que permitía compilar código Java, estaba dentro del propio proyecto de Maven y aquí tenéis su documentación.
Dado que vamos a emplear Java 6 para este ejemplo, lo añadimos tal cual lo teníamos anteriormente en el pom.xml generado por el arquetipo, al que le agregaré una versión dado que si no os saltará un Warning diciendo que ahora es obligatorio especificar la versión del plugin (a día de hoy la 3.3 es la última disponible según la central de Maven):
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build>
Si ahora desde el terminal ejecutamos un mvn clean compile, veremos que el código se compila perfectamente:
Con esto tendríamos la parte de la compilación. Respecto al empaquetado, si recordamos en nuestro pom.xml hemos definido que nos genere un war:
<packaging>war</packaging>
Si ejecutamos un mvn clean package nos generará automáticamente un war con nuestra aplicación:
Si quisiéramos obtener un ear, simplemente cambiando el packaging a ear, nos generaría un ear sin mayor problema:
En nuestro caso lo dejaremos en war, puesto que vamos a trabajar con Apache Tomcat igual que nos propuso el arquetipo de cara a desplegar nuestra aplicación.
Por ahora habríamos cumplido con nuestros dos primeros propósitos. Nuestro último propósito era poder desplegar la aplicación desde Maven en un servidor de aplicaciones (Apache Tomcat).
Si exploramos un poco la documentación del plugin de Apache Tomcat para Maven, encontraremos que hay dos maneras de trabajar con el plugin:
- Trabajar con un servidor instalado por nosotros: es decir si ya tenemos nuestro servidor instalado en el sistema, indicándole que usuario y contraseña emplear, el plugin sería capaz de desplegarlo sobre nuestro servidor.
- Trabajar con un servidor embebido creado por el plugin: es decir, el mismo plugin lleva ya su propio servidor Tomcat, el cual despliega nuestra aplicación en el puerto que le indiquemos.
Por simplicidad, vamos a mostrar como trabajar con la opción 2.
Simplemente añadimos la dependencia del plugin de Tomcat (la versión 2.2 es la última disponible en el repositorio):
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin>
Y si invocamos al comando:
mvn clean tomcat7:run
Veremos como se nos despliega en el puerto 8080 nuestra servicio rest:
Con lo que tendríamos nuestra aplicación desplegada en Tomcat sin necesidad de tener un servidor instalado (Maven descarga Tomcat y sus dependencias para nosotros). Cuando queramos parar el servidor, en la consola pulsamos Ctrol+C y con esto se acabará el proceso.
En el próximo capítulo continuaremos viendo como crear un proyecto con varios módulos (una estructura multiproyecto) y como gestionamos esos módulos a través de Maven.





No hay comentarios:
Publicar un comentario