Я начал с maven и остаюсь с ним. Когда я создаю проект с помощью maven, у меня никогда не возникает проблем с отсутствующими библиотеками, неправильными версиями библиотек ... Он компилируется, он запускается.
Обновить библиотеки просто (в отличие от Ant).
Maven предоставляет множество полезных плагинов. Я использую maven для тестирования функциональности на Hudson - он загружает новейшую версию моего проекта, запускает встроенную базу данных, вводит набор данных dbunit, развертывает приложение на причале, запускает тест, отображает результаты тестирования.
Мне не нравится, когда все в одном файле. Тогда я хотел бы указать конфигурацию не только с помощью XML.
Я использовал maven в каждом проекте, с которым сталкивался за последние 4 года или около того, от частных мини-проектов до огромных корпоративных проектов с множеством модулей, и я ни разу не пожалел об использовании maven.
Я построил все, от стандартных проектов java JAR / WAR / EAR до приложений flex / AIR и RPM Linux с использованием maven, делегируя Antrun или GMaven , когда не было подключаемого модуля maven. доступны для данной ситуации.
Мощность и удобство стандартного жизненного цикла maven в сочетании с обилием доступных подключаемых модулей для генерации кода, документации, показателей кода и т. Д., Которые обычно просты в использовании, делают maven единственным реальным выбором для систем сборки java.
Давай, разбей его, но пока ты не изобретешь что-нибудь получше, я буду продолжать его использовать.
Огромным преимуществом использования Maven является его инфраструктура репозитория. Это продвигает стандартные протоколы для совместного использования сторонних библиотек и позволяет командам более эффективно сотрудничать без необходимости проверять все в одном репозитории исходного кода (модульные сборки).
Менеджеры репозиториев находятся в свободном доступе, и я бы рекомендовал установить одно из следующих:
Хорошая новость в том, что вам не нужно создавать свой код с помощью Maven. чтобы максимально использовать преимущества инфраструктуры Maven.
Я рекомендую Maven для «зеленых» проектов, не требующих защиты. Как правило, начало проекта - лучшее время для внедрения новой технологии, а преимущества использования Maven хорошо документированы. Основное внимание уделяется стандартизированному процессу сборки и множеству сторонних плагинов.
ANT-проекты могут быть переработаны для взаимодействия с командами, использующими Maven.Плагин ivy , применяемый должным образом, может фактически упростить процесс сборки ANT. Айви может управлять путем к классам проекта, загружая зависимости из репозитория Maven и после этого публикуя артефакты сборки (точно так же, как Maven «развёртывает»).
Наконец, ivy встроен в другие инструменты сборки. Примерами являются новые инструменты сборки, такие как Gradle , простой инструмент сборки , и системы разработки, такие как Grails . Поэтому воспользуйтесь репозиторием Enterprise Maven и выберите инструмент сборки, подходящий для команды проекта.
Maven великолепен!
У меня не так много времени для лирической работы, как хотелось бы, но вот несколько моих главных преимуществ Maven, в произвольном порядке:
Что касается недостатков, часто говорят, что вам лучше принять настройки Maven по умолчанию и соглашения и в идеале начать использовать их в самом начале нового проекта. Я бы в какой-то степени согласился с этим, если вы хотите сэкономить время на настройке XML в своем POM.
На самом деле я не фанат инструментов, но, использовав Make и Ant до Maven, я действительно не вижу ни одного недостатка в принятии Maven. Это качественный инструмент, позволяющий сэкономить время.
Я согласен с Марком, что это отлично подходит для новых проектов. Есть некоторые накладные расходы, чтобы запустить его в вашей среде разработки, но оно того стоит.
Я мог бы добавить, что потенциальная опасность использования Maven заключается в том, что если вы работаете над большим проектом, может возникнуть сложность с поддержкой jar-файлов в репозитории. Потенциально вы можете использовать несколько разных версий банок в вашем POM.xml.
Как и в любом проекте, убедитесь, что у вас есть хорошие политики и процедуры для включения различных JAR-файлов в вашу кодовую базу. Эти jar-файлы могут иметь разные лицензии, которые могут открыть ваш код для мира с открытым исходным кодом. Убедитесь, что эти лицензии проверены вашим.