Мейвен или Айви? Какой из них лучше с уже существующей системой? И другие различия?

Я знаю, что это сложный вопрос, но я бы хотел узнать, какой из них лучше в случае системы, которая уже в производстве, с множеством ошибок и действительно плохим дизайном вообще. Действительно беспорядок.

Собственно, я спрашиваю об этом, потому что я уже конвертирую этот проект в Maven, и у меня много проблем. Мне нужно было отрегулировать структуру папок, отделить от проекта ужасную структуру, сделанную в компании (она была преобразована в jar lib), исправить множество деталей, которые все время нарушали проект, настроить POM.xml, чтобы сделать все что Ant уже выполнял и обнаружил библиотеки, которые действительно используются в приложении в качестве их версий (большая часть библиотек была переименована без номера версии, а файл манифеста был пуст).

Ну, это был действительно ад. Я сошел с ума во время этой задачи, и вопрос, который следовал за мной все время, был "И если бы я преобразовал его в Айви? Было бы проще?".

Я никогда не работал с Ivy, но, как я знаю, он работает с Ant, и это легче, чем Maven для адаптации проекта. С другой стороны, Maven это гораздо больше используется во всем слове (я ошибаюсь?), И у этого должна быть причина!

Итак, вот мои вопросы:

  • Интеграция с Jenkins/Hudson: с Айви это так легко, как с Maven?
  • Сонарный плагин: тот же вопрос выше. Интеграция проста?
  • Плагин для Eclipse. Это очень слабый момент для Maven. Плагин ужасный, но я не знаю плюшевых.
  • Развернуть процесс. После этого все настроено, развертывает и публикует проект с помощью maven очень просто. И с Айви?
  • Конверсия. Ну, мой опыт преобразования проекта в Maven был ужасен, но система не помогла. Вариант, который у меня был, это то, что Maven поражает новыми проектами, проектами, работающими с Maven с момента его создания, но не лучшим выбором, если у вас большой и неорганизованный проект. Я не прав?
  • Плагины: это много плагинов для настройки в POM.xml. Есть ли так много вариантов для Айви?
  • Популярность. Какой из них более популярен? Какой из них больше используется и почему?

Ну, это так. Большое спасибо!

Ответ 1

Прежде всего, прочитайте сравнение Ivy/Maven с сайта Ivy. Основная информация:

Во-первых, самое важное отличие состоит в том, что они вовсе не являются одними и теми же инструментами. Apache Maven - это инструмент управления проектами и программного обеспечения, тогда как Apache Ivy - это только инструмент управления зависимостями, высоко интегрированный с Apache Ant ™, популярным инструментом управления построением. Поэтому, возможно, более интересное сравнение сравнило бы Apache Ant + Ivy vs Apache Maven. Но это выходит за рамки этой страницы, которая концентрируется только на управлении зависимостями.

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

  • использовать Ivy/Ant
  • перейти на Maven

Если ваша сборка уже использует Ant, Ivy станет более легким, так как ваши скрипты сборки не нужно портировать в другую систему сборки.

Если вы решите перейти на Maven, потребуется больше усилий, потому что вам нужно переписать скрипты сборки и Mavenize, а также настроить управление зависимостями.

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