Buscar
Social
Ofertas laborales ES
« Mi primera hora con Eclipse | Main | Preparándose para el JDK 1.5: argumentos variables »
martes
abr202004

Maven, Maven 2, y macrodefs en Ant

Ant 1.6.1 presenta varias novedades, la más importante es la capacidad encapsular targets + parametros en forma de macros. Esto soluciona uno de los problemas de Ant: la modularidad. Podéis encontrar más información sobre las macros aquí.



El otro problema no tiene solución, es de legibilidad y se debe al número de caracteres necesarios para expresar scripting con XML. Los lenguajes de script reales (Groovy, Jython, ...) permiten un lenguaje compacto y flexible, mientras que con XML tenemos una sintaxis más rígida pero, justo por lo mismo, muy sencilla de aprender.



Estas mejoras en Ant iran en detrimento de Maven, que es "la otra" herramienta de construcción de proyectos Java. Maven se basa en



  • Un fichero project.xml donde se declaran en xml las caracteristicas del proyecto (nombre, desarrolladores, repositorios de código, listas de correo, librerias necesarias para construir el proyecto, etc.).


  • Plugins: targets prefabricados para hacer casi cualquier cosa.


  • Un fichero project.properties donde podemos personalizar las propiedades de cada plugin (donde buscar nuestro codigo fuente, etc.).


  • Un fichero maven.xml donde añadimos código a los plugins, o escribimos nuestros propios targets.


  • Un lenguaje de scripting llamado Jelly, que mezcla XML con scripting y acceso a Java.




El enfoque de Maven ha sido aislar la complejidad en plugins, que exponen ciertas propiedades para que podamos adaptar su comportamiento a nuestro proyecto. Dentro de Jelly podemos usar Ant asi que cuesta muy poco migrar nuestros scripts.



El problema con Maven es la escasa documentación, y Jelly, que es más de lo mismo, un lenguaje XML salpicado con scripting Java. Su autor ha manifestado que no era una buena idea, y ahora se dedica a Groovy, un lenguaje de script con JSR241.



Y como ventajas, sobre todo la gestión de dependencias, declaras lo que necesitas en el project.xml y se bajan automaticamente de un repositorio central. Puedes usar los mismos jars en todos los proyectos, y cuando distribuyes el código no necesitas adjuntar 20Mb de jars. El repositorio maestro esta en www.ibiblio.org/maven (solo hay software free).

También, que cuando aprendes a manejarlo todo es más fácil, normalmente solo hay que colocar tus ficheros en el sitio adecuado, y declarar las propiedades de tu proyecto (en el project.xml), hasta que la cosa se complica no necesitas scripting, y cuando lo hace, puedes usar Ant dentro de Jelly.



Otras direcciones, aparte de Ant y Maven, son usar ruby + ant, o Groovy.



Mientras, esta previsto que aparezca
Maven 2 unas semanas despues de Maven 1.0 (que esta en rc2 o algo asi). Maven 2 permitira plugins en Java, Jelly, u otros lenguajes de scripting (Jython, Groovy, etc.).

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.