Cargando



Maven – El plugin Jetty

Este tutorial continúa con los detalles clave de la herramienta Maven para la gestión de proyectos desde la línea de comandos en Windows.


jul 23 2014 14:57
Avanzado
jul 24 2014 10:34
En esta serie de tutoriales vamos a utilizar la aplicación web que creamos en el tutorial anterior como base para la configuración de distintos plugins y su uso desde la herramienta Maven. Empezando por:

Jetty


Este es un plugin ligero que contiene un servidor web que incluye el contenedor javax.servlet así como soporte para SPDY, WebSocket, OSGi, JMX, JNDI, JAAS, entre otros. Puedes informarte más de las utilidades de Jetty a través de su documentación (en inglés) pero aquí veremos cómo usar el plugin desde Maven.

Como nos vamos a basar en la aplicación web creada en el tutorial anterior, por favor revísalo y sigue las instrucciones si quieres guiarte con los pasos que presentaré aquí. De lo contrario puede ser que te pierdas un poco.

Empecemos con el archivo POM que teníamos en el pasado, el cual se veía así:


pom_webapp14.jpg


Ya anteriormente manejamos el tema de agregar dependencias y vimos cómo se modifica el plugin Maven nativo para la compilación de las clases Java. Ahora vamos a modificar el contenido entre las etiquetas <build> para que emplee el plugin Jetty para contener nuestra aplicación Web desde Maven.

Al igual que las dependencias, los plugin tienen su “groupId”, “artifactId” y “versión” para hacerles referencia en el archivo POM. Entre las etiquetas <plugins> puedes tener tantos plugins como requieras para cumplir cualquier cantidad de funciones empleando Maven. Adicionalmente puedes configurar los plugins para que se activen y desactiven cuando vayas a realizar pruebas, para que compilen, empaqueten y distribuyan las clases al ser modificadas, ejecutar hilos demonio, etc. Todo va a depender de la versatilidad del plugin que estés agregando.

Para saber qué plugin vas a necesitar y cómo configurarlo en el archivo POM busca en Internet “Maven Repository Search” o ve directamente a esta página para que puedas buscar tanto plugins como dependencias. En esa página puedes seleccionar la versión que requieras (más nueva o más vieja) y te muestran las etiquetas que debes colocar en tu archivo POM para que puedas usar la dependencia o el plugin.

En el caso del plugin Jetty:



Estoy para este ejemplo particular estoy eligiendo una adoptada por varias personas, en esta página se muestra cuán ampliamente adoptada está cada versión con una barra al final de la opción. Si quieres una versión más reciente o más antigua también la puedes encontrar allí. También debes tener cuidado de seleccionar el plugin o la dependencia ya que, en el caso de Jetty, puedes descargar la librería con el núcleo del servidor web o el plugin (en un primer boceto de este tutorial coloqué las dependencias para la librería así que es fácil equivocarse).

En cualquier caso lo único que debes hacer es copiar y pegar las etiquetas en tu archivo POM y debería quedar así:


POM con Jetty.jpg


Como verás, sólo agregué el plugin, lo cual me permite emplear los comandos de Maven y los de Jetty (que a los efectos de la demostración en este tutorial sólo vamos a usar mvn jetty:run). Recuerda que ese comando lo debes ejecutar desde la línea de comandos en la carpeta que contiene tu archivo POM y la primera vez que lo ejecutes se van a descargar todas las dependencias del plugin desde el repositorio (¿No es eso fantástico? Sólo debes señalarle a Maven lo que quieres y él se encarga de descargarlo todo).

Una vez que ejecutes el comando, el plugin de Jetty quedará corriendo en el fondo y podrás matarlo presionando Ctrl + C desde la línea de comandos. Mientras está corriendo sólo debes acceder a la dirección localhost:8080 y verás tu aplicación en tu explorador. Luego también puedes modificar el archivo .jsp y verás el cambio directamente en tu aplicación al refrescar la página.

Como mencioné antes, puedes agregarle parámetros a tus plugin (revisa la documentación si quieres seguir jugando con él), entre ellos, puedes mandar a Jetty a recompilar todas las clases Java cada cierto tiempo con la etiqueta “<scanIntervalSeconds>”. El siguiente ejemplo muestra cómo se vería si cambiamos la configuración del plugin un poco:


Jetty config.jpg


La nueva configuración se coloca en la etiqueta <configuration> y en este caso hemos modificado los segundos que toma para escanear si ha habido cambios en los archivos Java y recompilarlos y montarlos nuevamente en el servidor (con la etiqueta <scanIntervalSeconds>) y al mismo tiempo cambiamos el puerto requerido para ejecutar el comando de parada del plugin.

Esto es sólo un poquito de lo que puedes hacer con tus plugins en Maven, hay centenas de plugins y librerías disponibles para experimentar e informarte, recomiendo que leas la documentación y sigas usando Maven para tus proyectos, espero sus comentarios ¡Hasta la próxima!

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X