Apache Maven — фреймворк, сборщик программных проектов, специфицированных на XML-языке POM (en).
Управление зависимостями является одной из самых сильных сторон этого фреймворка. В отличие от Ant, сборка проекта в maven описывается декларативно а не императивно (командами). В Maven большинство операций стандартизировано, а большинство нестандартных задач решаются с помощью плагинов.
Сейчас Maven находится в стадии активной разработки. Стабильной версией является вертка 2.2, в разработке находится версия 3.
Одной из главных особенностей версии 3 будет полная обратная совместимость с проектными файлами написанными для версии 2.x. Хорошо это или плохо - сложно сказать. С одной стороны это значительно ускорит миграцию старых пользователей на новую версию, с другой требует больших трудозатрат от разработчиков. Для облегчения жизни при поддержании совместимости разработчики написали большое количество Unit Testов, покрывающих большую часть функционала. Совместимы будут не только файлы сборки, но и плагины.
Еще одной интересной особенностью в 3ей версии будет так называемый Polyglot Maven. Этот подпроект направлен на значительное расширение возможностей при написании и интерпритации pom файлов. Например теперь pom-файлы можно писать с использованием Groovy. При этом это не просто еще один вариант записи нотации - в таком pom файле можно использовать функции языка Groovy для манипуляции данными. Создана специальная утилита, позволяющая конвертировать polyglot pom в привычное xml описание. Мне пока сложно представить где эта возможность найдет свое применение, но она явно позволит вносить больше динамики в файлы сборки. Например извлечение параметров сборки из БД или других источников.
Embedded maven - Maven уже перерос время когда он был внешним средством для сборки проекта. Сейчас Maven уже интегрирован в Eclipse с помощью плагина m2eclipse, и как мне известно в NetBeans используют версию 3 для реализации поддержки Maven. При этом главной проблемой стала неподготовленность API maven для использования в качестве библиотеки. Оно было достаточно сложным и запутанным. В версии 3 этому уделили отдельное внимание. Вместе с полной обратной совместимостью это дало неожиданный эффект - уже сейчас плагины интеграции maven в основные IDE используют 3ью версию как встроенную библиотеку. Но при этом API еще находится в стадии активной разработки и не подвергалось заморозке.
Оптимизация производительности - тут все понятно. Оптимизации потребления CPU, дисковых операций, кеширования. В результате обещают повышение скорости сборки на 50-200%.
Maven Shell - специальный вариант работы Maven, значительно расширяющий обычную CLI версию. Обещают что это будет значительно удобнее и производительнее чем обычные сборки из командной строки.
Ну и самое главное - вместе с выходом 3.0 GA нам обещают полностью обновленную книгу: Maven: The Definitive Guide.
Если у кого-то возникло желание уже сейчас испробовать Maven 3, то для вас готова свежая 3ья альфа. Разработчики призывают к активному тестированию и обещают оперативно реагировать на отзывы, отчеты об ошибках и патчи.
ps: В основе статьи лежит: Maven 3.0-alpha-3 Released!
Комментариев нет:
Отправить комментарий