Жизненный цикл, этапы и цели сборки Maven

Когда мы создаем проект Maven, он выполняет набор четко определенных задач на основе конфигурации проекта, которая хранится в pom.xml, и параметров командной строки. Этот стандартный набор задач создает жизненный цикл сборки maven.

Преимущество четко определенного жизненного цикла заключается в том, что при этом для компиляции, сборки, установки и развертывания проектов вам нужно помнить лишь несколько наборов команд.

Встроенные жизненные циклы сборки

В Maven существует три встроенных жизненных цикла сборки.

  1. default: стандартный цикл, обрабатывает сборку и развертывание проекта.
  2. clean: обрабатывает очистку проекта.
  3. site: занимается созданием документации сайта проекта.

Этапы сборки Maven

Жизненный цикл сборки Maven включает в себя ряд этапов, которые называются фазами сборки. Например, жизненный цикл default состоит из следующих фаз.

  • валидация
  • компиляция
  • тестирование
  • упаковка
  • проверка
  • установка
  • развертывание

Этапы сборки выполняются последовательно. Запуская команду сборки maven, следует указать фазу, которую нужно выполнить. При этом любые этапы сборки maven, предшествующие указанному этапу, также будут выполнены. Например, если мы запустим пакет mvn, он выполнит этапы проверки, компиляции, тестирования и упаковки проекта.

Цели сборки Maven

Каждый этап сборки состоит из набора целей. Цели Maven представляют собой конкретную задачу, которая способствует созданию проекта и управлению им. Иногда цель maven не привязана к этапу сборки. Такие цели можно выполнять через командную строку. Синтаксис для выполнения цели выглядит так:

$ mvn plugin-prefix:goal

$ mvn plugin-group-id:plugin-artifact-id[:plugin-version]:goal

Взгляните на пример выполнения цели дерева зависимостей из командной строки (он не является частью каких-либо этапов сборки).

mvn dependency:tree

Роль POM в жизненном цикле сборки

Как мы уже упоминали ранее, сборки maven, выполняемые через командную строку, выполняют ряд этапов и целей. Конфигурация pom.xml играет важную роль в настройке жизненного цикла сборки проекта. Значение packaging файла pom.xml определяет набор целей, которые должны быть выполнены сборкой maven. Например, если этот параметр имеет значение jar, то сборка выполнит следующие этапы и цели.

Этап Goal
process-resources resources:resources
компиляция compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
тест surefire:test
пакетирование jar:jar
установка install:install
развертывание deploy:deploy

Также цели в файле pom.xml можно настроить, используя элемент plugins. Это в основном требуется, если вы создали собственный плагин и хотите выполнить какую-либо конкретную цель на этапе сборки.

Читайте также

Tags: ,

Добавить комментарий