Header Ads

Maven - Qué és y porqué usarlo



Apache Maven es una herramienta de linea de comandos diseñada para controlar y automatizar la administración y construcción de proyectos, creada por Jason van Zyl, de Sonatype, allá por el 2002.

Es similar en funcionalidad a Apache Ant, aunque mucho mas ágil, ya que permite trabajar de forma nativa con repositorios estándar de templates de proyectos y sus ciclos de vida definidos en un archivo llamado pom.xml.

Además posee la capacidad de descargar automáticamente dependencias de librerías estándar publicas o privadas, minimizando errores por el uso de diferentes versiones de las mismas y ahorrando espacio en los repositorios SCM.



Porqué usarlo?

  1. Predica la filosofía de la estandarización del ciclo de vida de un proyecto.  Este aspecto cubre desde la construcción de skeletons (llamados arquetipos) de una aplicación para una gran variedad de plataformas (móvil, desktop, web)  hasta su liberación final.
  2. Da un punto común sobre el cual cualquier desarrollador a través de comandos simples de manejo del ciclo de vida del proyecto, puede participar, compilar, testear y liberar un proyecto por mas que no conozca los pormenores del mismo, lo que hace mas fácil el mantenimiento en el tiempo.
  3. Es excelente para automatizar la ejecución de procesos de testing (sobre JUnit o similar), y de esta forma trabajar mediante la técnica TDD (Test Driven Development).
  4. Permite controlar métricas y generar reportes de calidad del proyecto.
  5. Se integra de forma transparente sobre entornos de integración continua (CI).
  6. Goza de la capacidad de ser una herramienta altamente flexible y configurable, propiedad que hace que sea excelente si se sabe que es lo que se quiere hacer y se lo utiliza para adaptarlo a las necesidades particulares de cada proyecto.

En un próximo post los ayudare a instalar maven desde cero. La idea este post es mostrar cómo se usa y mostrar sus ventajas.

Iniciaremos con un proyecto sencillo para web.


Creando un proyecto de aplicación web simple

En una consola escribe lo siguiente:

mvn archetype:generate -DgroupId=com.mi-compania.division -DartifactId=mi-webapp -DarchetypeArtifactId=maven-archetype-webapp DinteractiveMode=false

Donde:
  • DgroupId: Define el grupo al que pertenece la aplicación.
  • DartifactId: Define el nombre de la aplicación (o artefacto).
  • DarchetypeArtifactId: Es el mas importante. Define el tipo de proyecto que queremos generar. Existen cientos de arquetipos entre los que elegir.
  • DinteractiveMode: Define si queremos que nos pida necesidad de confirmación (valor true) o trabaje con los valores por defecto (valor false).

Ejemplo de una ejecución:

Nota: Maven trabaja con librerías en un repositorio local. Cuando no posee las librerías necesarias para lo que se le requiere, éste las baja desde los repositorios comunes en internet, por lo que no te sorprenda ver mensajes de descarga en la primera ejecución.

Estructura de Directorios Típico


En la estructura de directorios anterior se puede apreciar como importante:

  • El archivo pom.xml: contiene la programación funcional para cada objetivo del ciclo de vida.
  • Estructura src/main: Estructura de directorios del proyecto de aplicación.
  • Estructura src/test: Estructura de directorios del proyecto de testing. Algunos arquetipos  no lo manejan.

Ciclo de Vida Típico



Los plugins estandar suelen ser el compile, test, install y deploy. Otro plugin muy utilizado es clean, para eliminar todos los archivos compilados del proyecto en compilaciones anteriores previo a la ejecución de una compilación.

Un ejemplo de ejecución de plugins de maven:

mvn clean install

Con lo que le pedimos que limpie e instale el resultado en el repositorio local. El plugin clean elimina todos los binarios locales. El plugin install chequea si existe el paquete generado, por lo que al haber limpiado el directorio de compilación con el comando clean, Maven genera todo lo necesario automáticamente  ejecutando las compilaciones, empaquetados y finalmente instalándolo como lo solicitamos.

Ejemplo de ejecución sobre el proyecto web anterior :


Donde al finalizar la ejecución, dentro de un directorio target, encontraran el archivo .war listo para instalar en  un servidor java web tomcat o similiar.

Espero este artículo haya servido para ilustrarlos sobre Maven a modo de introducción, y dar una pequeña idea sobre su utilización. Por si quieren ver mas acerca de esta herramienta, les dejo el link del sitio oficial: http://maven.apache.org/



Escrito por:

No hay comentarios:

ESPACIO PUBLICITARIO

Con la tecnología de Blogger.