Сравнение Maven с ivy / ant - это сравнение смартфона и телеграфии.
Если вы хотите использовать реальный устойчивый эффект в вашей сборочной инфраструктуре, лучше использовать Maven, потому что он предвидит и абстрагирует все процессы и задачи, с которыми сталкивается каждый программный проект или другой программный проект. Я принимал участие во многих проектах, и если ваши проекты станут более сложными, разнообразными и разнородными, вы еще больше оцените простоту конфигурации проекта Maven. Действительно, это станет сложным, но не сложным по сравнению с управляемыми плющом / муравьями проектами.
Основным преимуществом Maven является «соглашение по конфигурации» (http://en.wikipedia.org/wiki/Convention_over_configuration) очень важная парадигма. Короче говоря, это означает, что вам не нужно знать / настраивать вещи, которые очевидны / тривиальны / обычны. Хотя Maven и все его плагины поставляются со многими настройками по умолчанию, у вас всегда есть возможность настроить свои проекты под ваши особые потребности. С Maven, с одной стороны, вы можете настроить проект очень легко и быстро, с другой - вы можете настроить Расширение проекта до ваших потребностей с минимальными усилиями. Если вы поняли ключевые концепции Maven, вы будете использовать каждый проект, а также проекты, которые также не являются типичными проектами разработки программного обеспечения.
В прошлом я писал много сценариев для муравьев, и с наступающим Maven я начал ненавидеть муравьев. Одним из недостатков является то, что вы всегда копируете сценарии и повторяете себя, разрабатываете муравьиные задачи, которые не повторяют задачи, которые не повторяют задачи, которые не повторяются ... И главный недостаток заключается в том, что растущие муравьиные сценарии имеют тенденцию становиться непригодными, особенно если дюжина фанатов муравьев хочет показать друг другу скрипты муравьев.
Многие муравьи-энтузиасты страдают от общего контроля над такими тривиальными вещами, как копирование артефактов и печать сообщений сборки. Но поскольку ключевая концепция Maven заключается в том, чтобы скрыть эти тривиальные вещи, легенда навсегда останется в живых, поскольку Maven ограничивает потребности в настройке. Но не волнуйтесь, это легенда! Итак, вы наконец поняли мое первоначальное утверждение: не беспокойтесь о тривиальных вещах, которые уже решены.
Возможно, ivy / ant - вариант для простых проектов, но для сложных растущих проектов вам нужны простота и соглашения. В противном случае вы будете перегружены все большим количеством проблем с обслуживанием. Особенно, если у вас есть много зависимых проектов, технологий и разнородных частей продукта в глобальном проекте, у вас нет времени и денег для разработки и тестирования ant-скриптов или решения проблем с зависимостями.
Следует упомянуть еще один совет: Ant предлагает интеграцию Maven. Эта интеграция часто используется для тестирования и игры с maven в проектах, которые выросли с помощью ant. Избегайте этого глупого подхода, потому что он порождает больше проблем. Вместо этого оставайтесь с муравьем и его болью или полностью мигрируйте в мавена.
Если вы сомневаетесь в стоимости миграции, я предлагаю вам использовать противоположный способ интеграции этих разных миров с помощью Maven-Ant-Plugin. С помощью этого стандартного плагина вы можете без труда запускать каждый ant-скрипт. Конечно, какое-то время это унаследованное решение, но оно дает вам столько времени, сколько вам нужно, чтобы понять мега-строки чудовищно искаженных некомментированных сценариев муравьев вашего предшественника.
А теперь вы похвалите следующее преимущество maven: вам нужно меньше документации о вашей конфигурации, потому что документация является частью каждого подключаемого модуля maven, который вы хотите использовать.
Так что, признаюсь, я был антагонистом Мавена.