¿Ant está todavía en la "corriente principal" para las compilaciones de Java?

14

Hemos estado reemplazando lentamente los archivos de comando de proceso por lotes (windows .bat) que simplemente alteraban las clases compiladas en el IDE de los desarrolladores, con compilaciones Ant más completas (es decir, obténgalas de CVS, compilación limpia, jar, archivo, correo electrónico, etc. .)

He pasado mucho tiempo aprendiendo (y depurando problemas) con Ant, por lo que me siento más cómodo usándolo para estas tareas. Pero me pregunto si Ant todavía tiene un uso tan amplio como cuando empecé a aprender, o si "el mundo se ha movido" hacia algo más nuevo (y quizás más sofisticado). (He empezado a ver más cosas de compilación Maven distribuidas, que nunca he usado, por ejemplo).

La importancia práctica de esta pregunta es si presiono a los nuevos desarrolladores para que aprendan Ant o si deberían estar aprendiendo algo más para compilaciones.

Nunca estoy demasiado al tanto de las tendencias, por lo que sería genial saber de otros desarrolladores de Java lo que creen que es la mejor herramienta de compilación y lo que creen que los nuevos desarrolladores deberían estar aprendiendo.

    
pregunta Sam Goldberg 17.11.2011 - 16:33

5 respuestas

23

Estoy de acuerdo con otros aquí en que Maven parece haber asumido la mayoría de los proyectos significativos que he visto.

Si bien Ant es muy flexible, el archivo de compilación no está estandarizado, por lo que cuando se muda a un nuevo proyecto o empresa, los objetivos se nombran de manera diferente, el archivo está estructurado de manera diferente, las dependencias entre objetivos pueden o no establecerse. , etc.

Con Maven, también obtiene la ventaja de no tener que llevar dependencias binarias (estoy hablando de tarros) en su sistema SCM. Muchas otras grandes herramientas de Java saben cómo leer un archivo POM de Maven (el beneficio de la estandarización), por lo que herramientas como IDE pueden configurar un proyecto de Maven muy rápidamente, y herramientas de construcción como Jenkins pueden ejecutar fácilmente las compilaciones de Maven.

    
respondido por el RonU 17.11.2011 - 17:35
11

He estado trabajando con Ant y con Maven. En mi experiencia, Maven tiene una muy gran ventaja sobre Ant.

  • Todos los proyectos que he visto en los últimos 2 o 3 años parecen estar utilizando maven. Hace aproximadamente 3 años, esto me hizo preguntarme porque las versiones de Maven usadas en ese entonces (2.0.algo) parecían ser bastante poco fiables y con errores. Sin embargo, en algún momento (2.1 o 2.2 no recuerdo), Maven se volvió confiable y, después de un tiempo dedicado a ello, he cambiado de opinión a lo contrario. Ahora, preferiría que me sorprendiera ver a alguien que prefiere la hormiga en lugar del experto.

En una nota menos positiva sobre maven, mi experiencia con su documentación no fue tan buena hasta ahora. Creo que he visto un producto con documentación peor que la de Maven, pero no puedo recordar cuál (alguna antigua biblioteca de CSV iirc).

    
respondido por el gnat 17.11.2011 - 17:08
3

Hemos estado usando Maven durante varios años. Es compatible con las secuencias de comandos de Ant (al igual que Ant es compatible con BeanShell), por lo que su conocimiento de Ant puede ser útil. Maven es mucho más poderoso, pero tiene algunos requisitos de infraestructura adicionales (querrá que un servidor Artifactory o Nexus aloje sus compilaciones si comparte componentes entre varios proyectos). También es bastante diferente de Ant, por lo que no puede aprovechar gran parte de su conocimiento existente.

    
respondido por el TMN 17.11.2011 - 17:18
1

Creo que la hormiga sola está muerta en el agua; tener que especificar manualmente todas sus dependencias de classpath (dependiendo de su configuración) es demasiado manual y propenso a errores. Si Ant se usa junto con una herramienta de administración de dependencias, como Ivy, entonces conserva su poder y elimina la necesidad de administrar manualmente sus dependencias.

El otro problema con Ant en comparación con Maven es la falta de estandarización, que se ha mencionado en otras respuestas. Al pasar de un proyecto a otro o de un trabajo a otro, una de las cosas más molestas que encuentro es tener que aprender el nuevo estándar para diferentes archivos Ant. El objetivo de Maven de convención sobre configuración significa que dos proyectos diferentes tendrán una estructura muy similar, lo que hace que la transición entre ellos sea mucho más fácil que con Ant. .

En cuanto a si Ant todavía es una empresa dominante o no, dependerá del entorno de desarrollo en el que esté trabajando. Si el proyecto es en una empresa pequeña o en una nueva empresa, me imagino que Maven sería la elección natural y el tiempo se puede tomar para invertir en la infraestructura, como un artefacto. Sin embargo, las grandes empresas habrán invertido muchos años y mucho dinero en su infraestructura de Ant (configuraciones, archivos de compilación global, etc.) lo que significará que estarán menos interesados en alejarse de una tecnología en la que han invertido tanto dinero. p>     

respondido por el Richard 17.11.2011 - 17:47
0

Maven ha estado en aumento durante muchos años, y ahora necesito aprenderlo. Las cosas siempre cambiarán, y saber que Ant está perdiendo su posición no es algo malo.

Es posible que Maven solo esté en la cima por poco tiempo, pero si facilita nuestro trabajo, vale la pena invertir tiempo para aprender.

    
respondido por el Jon Shanks 19.03.2013 - 17:59

Lea otras preguntas en las etiquetas