2010-01-02 7 views

ответ

17

Ivy является Ant расширения для управления внешними библиотеками в процессе развития, что дает вам способ добавить их в свой пути к классам, связывая их в сборку приложения и т.д.

Там какое-то перекрывание с тем, что делает Maven, но Айви намного легче (и не делает так много).

+0

Ivy конкурирует с задачами Maven Ant (http://maven.apache.org/ant-tasks/index.html), но, конечно, не с Maven. –

+4

Чтобы быть справедливым, я не сказал, что он состязался с ним, я сказал, что на нем накладывается совпадение. – skaffman

+0

Ну, Плющ, являющийся Ant-портом механизма обработки зависимостей Maven, есть, конечно, своего рода «перекрытие». Но все же вы не можете их сравнить. –

3

Ivy - менеджер зависимостей - он управляет и контролирует файлы JAR, от которых зависит ваш проект. Если у вас нет JAR, по умолчанию это будет pull them down for you (из репозитория Maven 2), что упростит настройку проекта.

+0

За исключением того, что большинство удаленных репозиториев плюща/maven ужасно неоднородны и неполны. – skaffman

+2

@ skaffman Факты, пожалуйста? –

+0

@Pascal - мой опыт выравнивается с утверждением @ скаффмана. Например, когда я начал использовать Maven, мне было трудно найти «правильные» версии J2EE api JAR, и я отказался от поиска OAIcat. У меня также возникают проблемы с плохими зависимостями, которые требуют «исключений» обходных решений. Однако для меня преимущества зависимостей в Maven-стиле перевешивают эти проблемы. –

4

Ivy первоначально Jayasoft.fr product, который в то время находился под лицензией BSD, однако ядро ​​Ivy всегда было таким же: это инструмент управления зависимостями .

Отношение Ivy к Ant заключается в том, что это расширение Ant в том смысле, что оно находится через Ant, однако на самом деле оно не зависит от него (за пределами очевидных частей). Ivy был объединен в проект Apache под Ant подпроектом через процесс инкубации 11 октября 2007 года.

Очень распространенное заблуждение, которое люди имеют в том, что они сравнивают Айви с Maven как единое целое. Однако это не работает, так как Ivy управляет зависимостями гибким образом и очень хорош в этом с упрощенной конфигурацией и широкой автоматизированной поддержкой с различными системами сборки и т. Д. Через Ant, а Maven - сама по себе система сборки. Личные мнения могут отличаться и отличаться тем, что делает то, что лучше всего, и это стоит нескольких попыток Stackoverflow/Google самостоятельно.

0

Я считаю, что эти важные и полезные пункты, чтобы добавить:

  • Ivy может использоваться автономно из командной строки без Ant. Если ваша среда CI не включает Ant, это не помешает вам использовать Ivy. Да, интеграция с Ant хороша и, безусловно, лучше документирована. Однако можно использовать документацию по интеграции Ant для автономного использования.
  • Ivy не только для Java. Моя команда успешно использует его для определения зависимостей для довольно крупного проекта .NET (10 взаимозависимых пакетов с несколькими версиями каждого из них в производстве с несколькими зависимыми от сторонних сторон). Хорошо работает. Мне хотелось бы, чтобы документация была более четкой и полной.
  • Есть дополнительные льготы, которые предлагает Ivy для Build Time: запуск по восходящему и нисходящему строкам.
Смежные вопросы