que - ¿Ant sigue siendo la mejor opción para una herramienta de compilación de Java?
que es ant en java (9)
A algunas personas les gusta Ivy , que es una aplicación de administración de dependencias para Ant, así que supongo que a las personas que provienen de un fondo Ant les gustará.
Otros como Buildr . Es una cosa de JRuby, así que si puedes hacer malabarismos con Ruby y Java en los mismos proyectos, entonces supongo que será interesante.
Personalmente, solo uso Maven . Es fácil armar un archivo pom.xml predeterminado y tener todos los comandos de compilación a su disposición. Y cuando el proyecto crece, ya cuenta con la infraestructura necesaria para ejecutar complementos y agregar dependencias.
De mi pequeña cantidad de experiencia, solo he usado Ant como herramienta de compilación. ¿Hay otros proyectos que sean mejores y por qué?
Ant sigue siendo un jugador importante. En mi experiencia, es dominante. Además, con Ivy, maneja algunas de las fortalezas de Maven. IMO, Ant se convertirá en un marco para otras herramientas: XML es demasiado rígido (ver enlace a continuación).
Maven 2 es también un jugador importante. Conozco gente a la que le gusta y se enfada con las críticas que fueron ciertas para Maven 1 (ha recorrido un largo camino).
Groovy está ofreciendo algunas cosas interesantes en el espacio de construcción, ya que se basan en Ant. Gant se usa en Grails, pero puede ser subsumido en Gradle. Estos también se pueden usar para Java.
A riesgo de proxenetismo en mi propio blog, aquí hay una publicación sobre Gant y Gradle. Aquí hay un enlace al debate actual sobre su futuro.
Le insto a comenzar con sus requisitos cuando considere la herramienta adecuada. Cada proyecto es diferente, la herramienta que utiliza debe reflejar el espacio problemático, no la moda.
Dicho esto, creo que para uso general, la hormiga es probablemente la mejor herramienta general para crear aplicaciones Java. A menudo se usa de manera efectiva con otras herramientas para la administración de dependencias, pero ahí vamos de nuevo a encontrar una solución sin problemas.
La muy buena noticia es que si su proceso es bueno, cambiar las herramientas de compilación es un proceso bastante sencillo (lección), comience con un buen proceso adaptado al problema en cuestión.
Maven2 parece ser lo que está por venir.
Para nuestros proyectos, sin embargo, estamos migrando de regreso a la hormiga siempre que sea factible.
Maven2 requiere bastante conocimiento para obtenerlo exactamente de la manera que desee, y las versiones de Maven2 parecen manejar classpaths de manera diferente.
Y es un dolor comprobar todas las licencias incluidas en las dependencias de las dependencias que pueden obtenerse.
Y puede tener un tiempo de inicio más lento, ya que necesita averiguar las dependencias usted mismo, pero al menos es fácil de leer. No hay magia pasando aquí :)
Si usa maven, piense en un repositorio interno como Nexus. De esa forma, su software no estará muerto si algunas bibliotecas deciden alejarse de la red *.
* Nos quemamos con maven1; el repositorio de ibiblio maven1 redirige y maven1 no admite redirecciones :(
Realmente me gusta SCons , que es una herramienta de compilación cuyos archivos de configuración son solo scripts de Python. Esto atraerá a cualquiera que conozca Python o lenguajes de scripting similares. SCons está diseñado para funcionar bien con Java y C / C ++ y otros lenguajes, y he estado muy satisfecho con él en el pasado.
Debido a que los archivos SCons están escritos en Python, puede escribir código Python arbitrario si se ve en la necesidad de hacer algo especial. Sin embargo, si no estás completamente familiarizado con Python, entonces posiblemente habrá una curva de aprendizaje más alta que tratar de extender Ant o algo similar para hacer lo que quieras.
También tienes a Gant . Gant es Groovy + Ant, puedes escribir tus tareas de forma sencilla y también puedes llamar a cualquier tarea de hormiga. Si eres una tienda de Java y quieres reutilizar las habilidades que tienes pero no les gusta XML, recomiendo a Gant, es muy fácil de instalar y puedes insertarlo en ant (y también llamar a gant desde hormiga).
en la empresa, la hormiga sigue siendo el jugador de los atrincherados. las dependencias no cambian rápido. a diferencia de los proyectos de código abierto que siguen avanzando hacia la versión más reciente de tarros dependientes, las empresas MOST intentan NO cambiar sus dependencias demasiado rápido. Teniendo eso en cuenta, las ventajas de maven NO son demasiado en comparación con la hormiga.
Por otra parte, si desea algunas de las características de maven, las personas con hormiga tienen hiedra ( http://ant.apache.org/ivy/ ) para la función de dependencias.
SI quiere continuar usando hormiga, póngase en contacto con "ANT IN ACTION", segunda edición para que pueda usar hormiga para la mejor productividad.
Buena suerte,
Es mucho mejor que la hormiga porque para las tareas más comunes no tienes que escribir un build.xml complicado, maven tiene muy buenos valores por defecto y todo es convencional en la configuración.
También tiene un gran repositorio central de bibliotecas y es muy fácil de configurar, como, "usar los últimos recursos comunes estables-lo que sea". A continuación, Maven descargará la última versión estable para usted (no más registros de comprobación en VCS) y, si se lanza una nueva versión estable, la descargará también. Por supuesto, es tan fácil bloquearlo en alguna versión específica si lo necesita.
También está bien integrado tanto con Netbeans como con Eclipse (plugin m2eclipse), por lo que el IDE respeta las configuraciones (incluidas las dependencias) que declara en el archivo pom.xml.
También hay algunas desventajas para maven: algunos complementos están bastante poco documentados, la integración con ambos IDEs no es realmente perfecta, y eso de diferentes maneras, algunos mensajes de error pueden ser difíciles de entender.
Ya encontrarás algunas respuestas en ¿Cuáles son algunas buenas utilidades de Java? .