Pregunta

Desde mi pequeña experiencia, solo he usado Ant como herramienta de compilación. ¿Hay otros proyectos que son mejores y por qué?

¿Fue útil?

Solución

Maven

Es mucho mejor que hormiga porque para las tareas más comunes no es necesario escribir un build.xml complicado, Maven tiene valores predeterminados muy buenos y todo es convención sobre la configuración.

También tiene un gran depósito central de bibliotecas y es muy fácil configurarlo para, por ejemplo, "usar los últimos comunes estables, lo que sea". A continuación, Maven descargará la última versión estable para usted (no más registros de tarros en VCS) y si se lanza una nueva versión estable ascendente, también la descargará. Por supuesto, es igual de fácil bloquearlo en alguna versión específica si lo necesita.

También está bien integrado tanto con Netbeans como con Eclipse (complemento m2eclipse), por lo que el IDE respeta cualquier configuración (incluidas las dependencias) que declare en el archivo pom.xml.

También hay algunas desventajas para Maven: algunos complementos están bastante mal documentados, la integración con ambos IDEs no es realmente perfecta, y que de diferentes maneras, algunos mensajes de error pueden ser difíciles de entender.

Otros consejos

Ant sigue siendo un jugador importante. En mi experiencia, es dominante. Además, con Ivy, maneja algunas de las fortalezas de Maven. En mi opinión, Ant se convertirá en un marco para otras herramientas: XML es demasiado rígido (vea el enlace a continuación).

Maven 2 también es un jugador importante. Conozco personas a las que les gusta bastante y se enfurecen ante 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, porque se basan en Ant. Gant se usa en Grails, pero se puede incluir en Gradle. También se pueden usar para Java.

A riesgo de proxenetizar mi propio blog, aquí hay una publicación sobre Gant y Gradle. Aquí hay un enlace al debate muy actual sobre su futuro.

en la empresa, la hormiga sigue siendo el jugador atrincherado. Las dependencias no cambian rápido. A diferencia de los proyectos de código abierto que siguen avanzando hacia una versión bastante nueva de jarras dependientes, la mayoría de las empresas intentan NO cambiar sus dependencias demasiado rápido. Dado eso, las ventajas de maven NO son demasiado comparadas con las de las hormigas.

Por otra parte, si desea algunas de las características de Maven, las personas hormiga tienen hiedra ( http: // ant. apache.org/ivy/ ) para la función de dependencias.

SI desea continuar usando hormiga, obtenga '' ANT IN ACTION '', 2da edición para que pueda usar hormiga con la mejor productividad.

Buena suerte

A algunas personas les gusta Ivy , que es una cosa de gestión de dependencia para Ant, así que supongo que las personas viniendo de un fondo Ant le gustará.

Otros como Buildr . Es una cosa de JRuby, así que si puedes hacer malabares con Ruby y Java en los mismos proyectos, supongo que será interesante.

Personalmente, solo uso Maven . Es fácil crear un archivo pom.xml predeterminado y tener todos los comandos de compilación a su disposición. Y cuando el proyecto crece, ya tienes la infraestructura para ejecutar complementos y agregar dependencias.

También tiene Gant . Gant es Groovy + Ant, puedes escribir tus tareas en groovy simple y también puedes llamar a cualquier tarea de hormiga. Si eres una tienda de Java y quieres reutilizar las habilidades de hormiga que tienes pero no te gusta XML, te recomiendo Gant, es muy fácil de configurar y puedes incrustarlo en hormiga (y también llamar a Gant desde hormiga).

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 script similares. SCons está diseñado para funcionar bien con Java, así como con C / C ++ y otros lenguajes, y he estado muy satisfecho con eso en el pasado.

Debido a que los archivos SCons están escritos en Python, puede escribir código arbitrario de Python si necesita hacer algo especial. Sin embargo, si no está 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 quiera.

Maven2 parece ser lo más prometedor.

Para nuestros proyectos, sin embargo, estamos migrando de vuelta a la hormiga siempre que sea posible.

Maven2 requiere bastante conocimiento para obtenerlo exactamente de la manera deseada, y las versiones de Maven2 parecen manejar classpaths de manera diferente.

Y es difícil verificar todas las licencias incluidas en las dependencias de las dependencias que pueden entrar.

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 aquí :)

Si usa Maven, piense en un repositorio interno como Nexus. De esa manera, su software no está muerto si algunas bibliotecas deciden alejarse de la red *.

* Nos quemamos con maven1; el repositorio de ibiblio maven1 redirige y maven1 no admite redirecciones :(

Le recomiendo que comience con sus requisitos cuando considere la herramienta adecuada. Cada proyecto es diferente, la herramienta que use debe reflejar el espacio del problema, no la moda.

Dicho esto, creo que la hormiga de uso general sigue siendo probablemente la mejor herramienta general para crear aplicaciones java. A menudo se usa de manera efectiva con otras herramientas para la gestión de dependencias, pero ahí vamos de nuevo a la 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 indoloro, lección, comience con un buen proceso adaptado al problema en cuestión.

Ya encontrará algunas respuestas en ¿Cuáles son algunas buenas utilidades para hacer Java? .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top