Apache Maven — различия между версиями

Материал из devopswiki
Перейти к: навигация, поиск
(Терминология)
(нет различий)

Версия 14:46, 19 октября 2012

Apache Maven — фреймворк для автоматизации сборки проектов, специфицированных на XML-языке POM (англ. Project Object Model).

Утилита Maven в отличие от аналогичного продукта (сборщика проектов Apache Ant) обеспечивает не императивную, а декларативную сборку. Декларативная сборка подразумевает написание программистом функционального и логического алгоритма для исполнения. То есть, в файлах проекта pom.xml содержится его декларативное описание, а не отдельные команды. Все задачи по обработке файлов Maven выполняет через плагины.

Общие сведения

Общую информацию Вы можете получить, перейдя по следующим ссылкам:

Apache 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 управляет этими плагинами, проходя серию четко определенных фаз в процессе разработки.