Las cosas que están mal con Maven
lunes, octubre 27, 2008 at 9:47PM Anders Beggston publica este listado en su blog. Obviamente, no es más que una opinión personal sobre esta herramienta de gestión de proyectos, sin embargo creo que refleja muy bien el sentir de muchos desarrolladores con Maven. No hay que olvidar que la herramienta fue creada desde 2002 y ya va en su versión 2, sin embargo a pesar de publicitarse como la evolución de Ant, sigue sin convencer a los desarrolladores java que siguen usando Ant para construir sus proyectos.
Algunos de los problemas los detecta muy bien Anders:
Verbosity. Maven, al igual que Ant, utiliza XML para configurar los scripts. A pesar del auge de este metalenguaje, ultimamente los desarrolladores prefieren alternativas más simples y que requieran de menos líneas. Por ejemplo, la gente de Groovy usa GANT que permite hacer scripts de Ant usando este lenguaje dinámico. Sin embargo, Maven parece no querer abandonar al viejo XML e incluso -como se menciona en los comentarios del blog- ha rechazado iniciativas para usar un formato con menos líneas de código.
Poco adaptable a proyectos heredados. Maven usa un mismo layout para los proyectos y a pesar de que dicho layout se puede modificar y adaptar, esto no resulta muy flexible ni sencillo. Por ello, no es sencillo migrar proyectos existentes a usar Maven, la cantidad de tiempo que tendrías que invertir puede hacerlo poco factible.
Dependencias transitivas. Esto es una de las cosas que menos me gusta de la herramienta. En teoría solo debe de descargar las dependencias que vas a usar, en la práctica descargarás decenas de jars de las que dependen un jar que usa un jar que usa otro jar que usas tu y cuyos desarrolladores pusieron mal esa dependencia porque en realidad no es necesaria.. En fin que al final para compilar tu aplicación terminas descargando 50 mb de jars de los que realmente no necesitas todos.
Plugins. En Maven todo se resuelve mediante plugins, mientras que otras herramientas Script te permiten más flexibilidad y hacer más cosas desde el mismo script. Esto te lleva a que hasta para la tarea más trivial dependas de un plugin que tienes que descargar y confiar en que sigan actualizándolo o -de otra forma- construirte los tuyos propios.
Pruebas unitarias. Dado que Maven imprime todo el stdout de las pruebas a la consola, los resultados de las mismas pueden quedar un poco escondidos. Para ver bien los detalles es necesario abrir los informes generados por Maven. De acuerdo a Anders, esto podría simplificarse y mejorarse. Desde mi punto de vista no es un factor determinante para dejar de usar la herramienta.
Output del build. Pues sí, quizás imprime demasiada información pero esto a mi no me molesta, al contrario es bastante útil para detectar errores.
Repositorios. Este es una parte esencial del modo Maven de hacer las cosas. Sin embargo, tener que depender de repositorios externos en internet (algo que resulta riesgoso) o montarse un repositorio local en un servidor (demasiado trabajo).
Yo uso maven desde hace unos 3 años pero a veces siento que es demasiado trabajo configurar mis proyectos con la herramienta, además de que con el paso del tiempo no se han dado pasos a mejorar esto (aunque si ha habido mejoras en el desempeño de la aplicación). Por otro lado, me he empezado a mirar alternativas como Ant + Ivy y ahora Buildr y Gant.. ¿que opináis vosotros? ¿cuántos usáis maven?
j2se 
Reader Comments