Мейвен или Айви? Какой из них лучше с уже существующей системой? И другие различия?
Я знаю, что это сложный вопрос, но я бы хотел узнать, какой из них лучше в случае системы, которая уже в производстве, с множеством ошибок и действительно плохим дизайном вообще. Действительно беспорядок.
Собственно, я спрашиваю об этом, потому что я уже конвертирую этот проект в 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.