"MAVEN" Evolucion de Ant

He escuchado muchas veces del proyecto de ANT de Apache, el cual yo he llegado a utilizar pero que hoy en día se ha quedado corto a mis necesidades, por lo cual les hablare un poco sobre MAVEN. No pretendo hacer de este post un manual de como utilizar MAVEN pero si de dar a conocer algunas de sus características esperando que puedan enriquecerlo con sus comentarios.

Generalmente en nuestros desarrollos de java siempre tenemos que realizar varias tareas, una de esas es crear una estructura de directorios para nuestro proyecto, con un espacio para los fuentes, otro para iconos, archivos de configuración, directorio para dejar los .class o el .jar, para dejar el javadoc, etc, etc.

Posteriormente, tenemos mas tareas que realizar con mucha frecuencia como borrar los .class, compilar, generar la documentción de javadoc, el jar, incluso generar documentación web para publicar nuestro trabajo. Posiblemente acabemos haciendo algunos shell scripts (MAC) o .bat para todas estas tareas si utilizas windows.

Si el proyecto es grande, es muy fiable depender de otros jar externos, como drivers de BD, JUnit para clases de test, log4j para nuestra salida de log, etc, etc. Tendremos que copiar todos esto jar externos en algún sitio de nuestro proyecto e incluirlos.

Una primera herramienta que nos ayuda un poco con todo esto es ant. Sin embargo, con ant no tenemos todas estas tareas hechas y debemos reescribir posiblemente nuestro fichero build.xml de un proyecto a otro. También tendremos que copiar los jar externos de los que dependemos.

Si requerimos una herramienta mas poderosa, mas evolucionada nos encontraremos con Maven, ya que con comandos simples, nos crea una estructura de directorios para nuestro proyecto con sitio para los fuentes, los iconos, archivos de configuración, etc, etc. Si a maven le indicamos qué jar externos necesitamos, es capaz de ir a buscarlos a internet y descargarlos por nosotros. Sin necesidad prácticamente de configurar nada, maven sabe como borrar los .class, compilar, generar el jar, generar el javadoc y generar un documentación web con un chingo de informes (métricas, código duplicado, etc). Maven se encarga de pasar automáticamente nuestros test de prueba cuando compilamos. Ejemplo Junit y Selenium del cual ya he hablado anteriormente. Incluso maven nos genera un zip de distribución en el que van todos los jar necesarios y ficheros de configuración de nuestro proyecto.

Los invito a que lo prueben, no se van a arrepentir e igual y se ahorran algunas horas de trabajo, posiblemente en algún otro post publique algo sobre la instalación, creación de proyectos, compilación, etc etc. Por el momento espero sus comentarios.