Apache Maven
Apache Maven — фреймворк для автоматизации сборки проектов, специфицированных на XML-языке POM (англ. Project Object Model).
Утилита Maven в отличие от аналогичного продукта (сборщика проектов Apache Ant) обеспечивает не императивную, а декларативную сборку. Декларативная сборка подразумевает написание программистом функционального и логического алгоритма для исполнения. То есть, в файлах проекта pom.xml содержится его декларативное описание, а не отдельные команды. Все задачи по обработке файлов Maven выполняет через плагины.
Содержание
Общие сведения
Общую информацию Вы можете получить, перейдя по следующим ссылкам:
Официальный сайт Apache Maven Project на русском языке
Apache Maven 2 на IBM developer Works
Расширенные сведения
С дополнительной информацией об этом понятии Вы можете ознакомиться ниже.
Особенности
- Понимает как обычно конструируют проекты.
- Использует встроенные понятия о проектах для упрощения и облегчения создания проектов.
- На новом уровне использует встроенные понятия о проектах, чтобы помочь пользователю понять структуру сложных проектов и потенциальные возможности процесса создания.
- Использует и улучшает хорошо зарекомендовавшую себя систему управления связями, точно соответствующую запросам современных глобализованных и взаимосвязанных проектных групп.
- Просто и ненавязчиво дает пользователю необходимый опыт для простых проектов, улучшая собственные внутренние представления.
- Является полностью гибкой платформой для продвинутых пользователей; встроенные модели могут быть переопределены и декларативно адаптированы (посредством конфигурации, модификации метаданных или созданием пользовательских плагинов) для особых программных сценариев.
- Позволяет добавлять детали сценариев, не включенные в существующую версию.
- Постоянно улучшается, фиксируя недавно созданные практики программирования и установленную унифицированность пользовательских сообществ, и делая их частью встроенной базы знаний Maven о проектах.
Терминология
Каждый проект описывается в файле pom.xml (POM) и находится в корневой папке проекта. Основное понятие этой утилиты это артефакт. Артефакт – это библиотека, которая хранится в репозитории.
Зависимость – это библиотек, которая используется в конкретном проекте для компиляции исходного кода, а также дя его тестирования.
Архетип – стандартная сборка каталогов и файлов в проектах. То есть программа Maven распознает правильное строение проектов и в соответствии с архетипом образовывает четко определенную структуру каталогов.
Плагин – это элемент, который используется программой Maven при сборке конкретного проекта или при таких процессах как: создание файлов проекта для Eclipse, deployment и др. Репозитории Maven состоят из набора артефактов, используемых программой и отображают связи в проекте. Есть 2 типа репозиториев: локальные и удаленные. Первые доступны на локальных дисках, а вторые - по сети.
Основные компоненты
Объектная модель проекта (POM): POM — основополагающая модель в Maven. Часть этой модели уже встроена в движок Maven (любовно названный реактором), вам остается лишь декларативно определить остальные части через файл метаданных на XML с именем pom.xml.
Модель управления связями: Maven требователен к тому, каким образом в проекте осуществляются связи. Управление связями — это переходная зона, типичная для инструментов и систем управления созданием проектов с более широкой специализацией. Модель управления связями в Maven встроена в Maven 2 и может быть адаптирована для широкого спектра потребностей. Эта модель отказоустойчива и продуктивна и в настоящее время используется в большинстве проектов с открытым исходным кодом.
Создание жизненного цикла и его фаз: Жизненный цикл и его фазы — понятия неотделимые от POM. Это связующее звено Maven 2 между его встроенными концептуальными моделями и реальным миром. При использовании Maven работа осуществляется только посредством плагинов. Maven 2 управляет этими плагинами, проходя серию четко определенных фаз в процессе разработки.