 | Обзор Maven 2
Maven - это высокоуровневый проект с открытым исходным кодом Apache Software Foundation, созданный, в первую очередь, для управления сложным процессом создания проекта Jakarta Turbine. Несмотря на такое скромное начало, разработчики проектов с открытым исходным кодом и в закрытых областях предпочли Maven в качестве системы создания проектов. Быстро развиваясь, сейчас уже во второй версии, Maven вырос из специализированной системы построения одного сложного проекта в обобщенную систему управления разработкой с огромным количеством дополнительных возможностей, применяемых в большинстве сценариев разработки программного обеспечения.
В двух словах, Maven 2:
- Понимает как обычно конструируют проекты.
- Использует встроенные понятия о проектах для упрощения и облегчения создания проектов.
- На новом уровне использует встроенные понятия о проектах, чтобы помочь пользователю понять структуру сложных проектов и потенциальные возможности процесса создания.
- Использует и улучшает хорошо зарекомендовавшую себя систему управления связями, точно соответствующую запросам современных глобализованных и взаимосвязанных проектных групп .
- Просто и ненавязчиво дает пользователю необходимый опыт для простых проектов, улучшая собственные внутренние представления.
- Является полностью гибкой платформой для продвинутых пользователей; встроенные модели могут быть переопределены и декларативно адаптированы (посредством конфигурации, модификации метаданных или созданием пользовательских плагинов) для особых программных сценариев.
- Позволяет добавлять детали сценариев, не включенные в существующую версию.
- Постоянно улучшается, фиксируя недавно созданные практики программирования и установленную унифицированность пользовательских сообществ, и делая их частью встроенной базы знаний Maven о проектах.
Maven 2 - концептуальный обзор
Для получения знаний о том, как создаются проекты, Maven 2 использует набор концептуальных моделей о том, как такие вещи должны работать. Эти модели, частично являясь частью программного кода Maven 2, постоянно совершенствуются в новых версиях Maven. На Рисунке 1 показаны основные модели Maven 2:
Рисунок 1. Объектные модели и модели работы Maven 2
Основными компонентами на Рисунке 1 являются:
-
Объектная модель проекта (POM): POM - основополагающая модель в Maven 2. Часть этой модели уже встроена в движок Maven (любовно названный реактором), вам остается лишь декларативно определить остальные части через файл метаданных на
XML с именем pom.xml.
-
Модель управления связями: Maven требователен к тому, каким образом в проекте осуществляются связи. Управление связями - это переходная зона, типичная для инструментов и систем управления созданием проектов с более широкой специализацией. Модель управления связями в Maven встроена в Maven 2 и может быть адаптирована для широкого спектра потребностей. Эта модель отказоустойчива и продуктивна и в настоящее время используется в большинстве проектов с открытым исходным кодом.
-
Создание жизненного цикла и его фаз: Жизненный цикл и его фазы - понятия неотделимые от POM. Это связующее звено Maven 2 между его встроенными концептуальными моделями и реальным миром. При использовании Maven работа осуществляется только посредством плагинов. Maven 2 управляет этими плагинами, проходя серию четко определенных фаз в процессе разработки.
Не беспокойтесь о том, что часть этих концептов кажутся немного нечеткими. В следующих главах вы увидите конкретные примеры закрепляющие концепты за определенными моделями.
Maven 2 - обзор физического строения
Рисунок 2 раскрывает действия и взаимодействия в Maven 2, показывая его физическое строение. На Рисунке 2 показано, как вы можете взаимодействовать с Maven 2:
Рисунок 2. Модель действий и взаимодействий в Maven 2
На рисунке 2, POM показывает, как Maven понимает ваш проект. Эта модель формируется декларативным описанием, содержащимся в серии файлов pom.xml. Файлы pom.xml создают дерево, и каждый из них может наследовать признаки родителя. Maven 2 поддерживает Super POM. Super POM находится на вершине иерархического дерева и содержит общие признаки, определенные по умолчанию для всех проектов; каждый проект POM наследует их.
Связи определяются как часть файла pom.xml. Maven рассчитывает связи в проекте на основе его модели управления связями. Maven 2 ищет зависимые компоненты (артефакты в терминологии Maven) в локальных и глобальных репозиториях. Артефакты, определенные в удаленных репозиториях, загружаются для обеспечения более быстрого последующего доступа к ним. Распознаватель связей в Maven 2 может работать и с переходными связями. То есть он правильно распознает связи, от которых зависят ваши связи.
Движок Maven самостоятельно через плагины осуществляет почти все задачи по обработке файлов. Плагины сконфигурированы и описаны в файле pom.xml. Сами плагины обрабатываются системой управления связями как артефакты и загружаются по запросу, если они требуются при построении. Каждый плагин может быть связан со множеством фаз жизненного цикла. Движок Maven имеет машину структурирования, которая работает во всех фазах жизненного цикла и вызывает плагины, если они необходимы.
|  |