sábado, 13 de octubre de 2012

¿Maven?

En el curso de DSD escuchamos varias veces el término MAVEN, pienso que es importante presentarlo. Para variar, esta herramienta fue creado por la gentita de Apache Software Foundation. Su filosofía principal  es proporcionar un esquema para la ejecución de las distintas fases realizadas en la construcción del software, pasando por la creación hasta la distribución de los componente(s) producto del proyecto.

Características principales:
- Complemento evolutivo de Apache Ant.
Para aquellos desarrolladores antiguos de software usando la tecnología Java, que no es mi caso, saben que Apache Ant ha sido la herramienta de construcción de uso más extendido. Maven no es sustituto de Ant sino es un complemento, es más, Maven tiene el core de Ant
- Convenio sobre la configuración.
Maven establece una serie de convenciones para la estructura de proyectos, el nombrado de comandos, etc.; de manera que un proyecto creado en Maven es válido en cualquier equipo y los comandos para compilarlo, empaquetarlo, construirlo siempre serán los mismos.
- Estructura jerárquica de las fases del ciclo de vida de construcción del proyecto.

     * compila (compile)
     * testea (test)
     * empaqueta (package)
     * instalalo
     * despliegalo (deploy)
        Es decir que si ejecutamos la tarea package se realizará una verificación para comprobar si los comandos compile y test ya han sido ejecutados, de lo contrario se ejecutarán en orden jerárquico.

- Descripción centralizada de los proyectos a través del POM (Project Object Model)

POM es un archivo XML nombrado como pom.xml en dónde podemos definir los diferentes matices de nuestro producto, información descriptiva del proyecto como nombre, grupo y versión, definición de dependencias, plugins a utilizar para extender funcionalidad, módulos que conforman el proyecto, perfiles de construcción e incluso información referente al equipo de desarrollo.


- Gestión de dependencias.
Maven proporciona un repositorio central con las diferentes distribuciones de la gran mayoría de los proyectos open source actuales organizados por proveedor, grupo y versión. De esta manera desde nuestros proyectos basta con definir la dependencia que necesitamos y maven se encargará de resolverla. Con el paso del tiempo han surgido repositorios que nacieron como réplicas y/o complemento del repositorio central maven por ejemplo el repositorio de Red Hat – Jboss. A propósito de esto cabe destacar que maven permite la creación de repositorios basados en niveles jerárquicos. Por ejemplo, podemos crear el repositorio de nuestra empresa con los proyectos que al interior de los mismo se van generando. De hecho cuando comenzamos a utilizar maven en nuestro equipo se va generando un repositorio local que será el primer lugar en dónde maven busque resolver una dependencia.



En resumen MAVEN es una herramienta orientada a simplificar el proceso de construcción de nuestras aplicaciones a la vez que nos promueve a mantener consistencia en la estructura de nuestros proyectos de software, además proporciona gestión de dependencias una de sus características más destacables.

Efectivamente, comparado con mis tiempos, hoy por hoy las herramientas existentes en el mercado nos hacen cada vez  la vida más fácil.
Antes que me denuncien por piratería, como a Bryce, les mando el link


No hay comentarios:

Publicar un comentario