Maven, bondades e inconvenientes (opinión publicada originalmente en Sólo Programadores)
jueves, febrero 5, 2009 at 8:38AM Maven, bondades e inconvenientes (opinión publicada originalmente en Sólo Programadores)
Fernando Vaquero, Arquitecto J2EE
Los proyectos informáticos necesitan tener una estructura bien conocida que permita al equipo de desarrollo familiarizarse con ella. La infinidad de entornos de desarrollo actuales hace bastante compleja esta homogenenización, por eso que han surgido diferentes iniciativas fuera de los IDEs como puede haber sido Ant. Sin embargo Ant no define un proyecto, sino que ofrece tareas aplicables sobre el proyecto.
Maven es un gestor de proyectos muy configurable y adaptable que define un ciclo de vida básico del proyecto sobre el que se pueden ir ejecutando ciertas tareas asociadas. Está basado en plugins que le dan la posibilidad de extenderlo y poder crear nuevas funcionalidades a ejecutar sobre la construcción del proyecto (ya hay muchos desarrollados). Hace una gestión de las dependencias a partir de repositorios remotos de librerías, incluyendo las dependencias transitivas. Para la documentación permite la generación de todo un site de documentación del proyecto (javadoc, informes de calidad, etc.) y la generación y publicación de releases. Se integra perfectamente en sistemas de integración continuaran además de tener soporte en los IDEs más importantes. Con Maven podemos, a partir del descriptor pom.xml reconstruir todo un proyecto (desde el CVS). Y para los amantes de Ant nos permite la ejecución de Ant y Beanshell.
A pesar de las ventajas también tiene ciertos inconvenientes. Entre ellos podemos encontrar su curva de aprendizaje, que puede ser alta ya que es una nueva manera de gestionar proyectos. Además a veces cuesta acceder a la documentación de los plugins. Los proyectos grandes generan descriptores de proyectos complejos, las dependencias transitivas pueden resultar engorrosas al iniciar un proyecto y, por supuesto, es otra manera de configurar un proyecto diferente al del IDE. Superados estos problemas iniciales Maven es una solución a tener en cuenta para el ciclo de vida de desarrollo de proyectos.
otro 