10 Nuevas Características de Maven 3
AUTOR
JAIME CARMONA LOECHES
FUENTE
http://www.developer.com/java/article.php/3908561/Top-10-New-Features-in-Maven-3.htm
FECHA
Domingo 7 de Agosto de 2011
REQUISITOS PREVIOS RECOMENDADOS
Conocimientos en Maven2
INTRODUCCIóN
El presente artículo pretende realizar un análisis teórico sobre
la herramienta Maven3, versión que ha visto la luz 6 años después de
la publicación de Maven2 y con notables mejoras con respecto a la
versión anterior.
LAS 10 CARACTERíSTICAS PRINCIPALES DE MAVEN3 CON RESPECTO A
MAVEN2
1) Compatibilidad con Maven2: la migración de proyectos de
Maven2 a Maven3 es prácticamente transpante. Hay que tener en cuenta
que el único inconveniente que puedes encontrarte por el camino es
que, si tienes una dependencia duplicada o no especificas la versión
de plugins y/o dependencias, Maven 3 te avisará de dichos problemas y
te recomendará que los arreglas, puesto que los ficheros POM mal
formados no serán soportados por versiones posteriores.
2) Notable mejora de rendimiento: la velocidad de Maven3 con
respecto a versiones anteriores mejora de un 50% a un 400%. Esta es
una de las caracterísicas más importantes en opinión del autor.
3) Versiones Automáticas de Parent: en Maven 3.1, no tienes la
necesidad de especificar la versión padre de los submódulos
construidos a partir del mismo.
4) Builds en Paralelo: Maven 3.1 introduce una nueva
característica, llamada builds en paralelo, que permite programar
módulos en paralelo. Para escribir un proyecto en paralelo, puedes
utilizar el siguiente comando:
mvn -T 2 clean install mvn -T 2C clean install
Con los builds en paralelo, puedes mejorar el rendimiento hasta
un 20 o un 50%. Sin embargo, esta es una característica experimental
que no debe usarse, de momento, en entornos de producción.
5) Mejor descripción de errores: Maven 3 tiene mejorada la
capacidad de reportar errores, y proporciona un link a la página Maven
de wiki donde puedes obtener una descripción completa del error y sus
causas posibles.
6) Plugin Extension Points: En Maven 3, puedes conectar
diferentes puntos de extensión para modificar el comportamiento del
plugin en lugar de extender el plugin como se ha hecho con Maven 2.
Por ejemplo, ahora es posible definir un extension point para alterar
la manera de que el web.xml será procesado por el plugin WAR.
7) Mixins: esta característica permite componer tu POM con
fragmentos POM, en lugar de usar la herencia. Están disponibles en la
versión 3.1 de Maven. Estos Mixins serán desplegados en un repositorio
y referenciados con un coordinador estándar.
8) Maven Shell: Maven Shell es una línea de interfaz de comando
para permitir que Maven mejore la velocidad de construcción porque
cachea el POM parseado, eliminando la necesidad de invocar Maven de
manera repetida. Soporta el Arquetipo de integración de Maven,
proporciona la integración de Nexus e incluye un sistema de
construcción interno. Al no estar incluido en la versión estándar, hay
que descargar esta característica de manera separada.
9) Build Poliglotas: esta característica permite escribir un
fichero POM en un formato no XML, soportando lenguajes como Groovy,
Ruby, Scala, Clojure, YAML. Al igual que Maven Shell, no está incluída
esta característica por defecto en Maven3, por lo que hay descargarlo
de manera separada.
10) M2Eclipse: este plugin proporciona la integración entre
Maven y Eclipse. La versión 0.10.0 (a la fecha de publicación de este
tutorial, la última) ha sido completamente reescrita utilizando el API
embebido de Maven3. La mejora de M2Eclipse ha sido, según fuentes
internas de desarrollo del proyecto, de un 200 a un 500%,
principalmente, porque internamente M2Eclipse proporciona informacion
extra de los metadatos XML en el POM de Maven, que será reconocido
sólo por el plugin de M2Eclipse.
OPINIóN DEL AUTOR
En opinión del autor, se ven bastantes mejoras en el desarrollo,
mejoras ya existentes de productividad con respecto a la generación de
builds de proyectos existentes, así como nuevas herramientas
interesantes, como la consola, mejora en errores, etc.
Al ser Maven3 completamente compatible con proyectos
desarrollados con Maven2 y conservar el núcleo fuerte de
funcionamiento del mismo, se recomienda migrar dichos proyectos a esta
herramienta, además de recomendar el aprendizaje en paralelo o tiempos
libres en el trabajo diario de nuevas características incorporadas en
esta versión.
Muchas gracias por vuestra atención.