2010-01-02 14 views

Respuesta

17

Ivy es una extensión de la hormiga para la gestión de bibliotecas externas durante el proceso de desarrollo, que le da una forma de agregarlos a la ruta de clases, envolviéndolos en su acumulación de aplicación, etc.

Hay cierta superposición con lo que hace Maven, pero Ivy es mucho más ligero (y no hace tanto).

+0

Ivy compite con las tareas Ant Maven (http://maven.apache.org/ant-tasks/index.html), pero ciertamente no con Maven. –

+4

Para ser justos, no dije que compitió con él, dije que había superposición. – skaffman

+0

Bueno, Ivy es un mecanismo de manejo de dependencias del puerto Ant de Maven, por supuesto hay una especie de "superposición". Pero aún así, no puedes compararlos. –

3

Ivy es un administrador de dependencias: administra y controla los archivos JAR de los que depende su proyecto. Si no tiene los JAR, será pull them down for you por defecto (desde el repositorio Maven 2), lo que puede facilitar la configuración del proyecto.

+0

Excepto que los repositorios de hiedra/maven más remotos son horriblemente irregulares e incompletos. – skaffman

+2

@skaffman Hechos por favor? –

+0

@Pascal: mi experiencia se alinea con la afirmación de @ skaffman. Por ejemplo, cuando comencé a usar Maven, tuve muchas dificultades para encontrar las versiones "correctas" de J2EE api JAR, y dejé de tratar de encontrar OAIcat. También me he encontrado con problemas con las malas dependencias que requieren soluciones "excluyentes". Sin embargo, para mí los beneficios de las dependencias estilo Maven superan estos problemas. –

4

Ivy es originalmente un Jayasoft.fr product que en ese momento estaba bajo licencia BSD, sin embargo, el núcleo de la hiedra ha sido siempre la misma: Es una herramienta de gestión de la dependencia .

La relación de Ivy con Ant es que es una extensión Ant en el sentido de que es a través de Ant, sin embargo, realmente no depende de ello (más allá de las partes obvias). Ivy se fusionó en un proyecto Apache bajo Ant como subproyecto a través del proceso de incubación el 11 de octubre de 2007.

La gente tiene la idea errónea de que comparan Ivy con Maven en su conjunto. Sin embargo, eso no funciona, ya que Ivy solo maneja las dependencias de una manera ágil y es muy bueno con una configuración simplista y un amplio soporte automatizado con varios sistemas de compilación, etc. a través de Ant, mientras que Maven realmente es un sistema de compilación en sí mismo. Las opiniones personales pueden diferir y difieren en cuál de ellas hace lo mejor y vale la pena varias búsquedas de Stackoverflow/Google por sí misma.

0

Creo que estos son puntos importantes y útiles para añadir:

  • Ivy se puede utilizar independiente de la línea de comandos sin hormiga. Si su entorno de CI no incluye Ant, no le impedirá usar Ivy. Sí, la integración con Ant es agradable y, de lejos, mejor documentada. Sin embargo, uno podría aplicar la documentación de integración Ant a un uso independiente.
  • Ivy no es solo para Java. Mi equipo lo usa con éxito para definir dependencias para un proyecto .NET bastante grande (10 paquetes interdependientes con varias versiones de cada uno en producción con múltiples dependencias ascendentes de terceros). Funciona bastante bien Ojalá la documentación fuera un poco más clara y completa.
  • Hay ventajas adicionales que Ivy ofrece para Build Time: upstream y downstream builds triggering.
Cuestiones relacionadas