Какие фазы жизненного цикла сборки существуют в Maven?

«Какие фазы жизненного цикла сборки существуют в Maven?» — вопрос из категории Системы сборки, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Maven определяет три основных жизненных цикла сборки, каждый из которых состоит из последовательности фаз.

1. clean — очистка артефактов предыдущей сборки.

  • Основная фаза: clean — удаляет директорию target.

2. default (или build) — основной цикл для компиляции, тестирования и упаковки проекта. Его ключевые фазы:

  • validate — проверка корректности структуры проекта и pom.xml.
  • compile — компиляция исходного кода.
  • test — запуск модульных тестов (например, JUnit) с использованием подходящего фреймворка. Для QA-специалиста важно понимать, что эта фаза выполняется автоматически перед упаковкой.
  • package — упаковка скомпилированного кода в распределяемый формат (JAR, WAR).
  • verify — запуск интеграционных тестов или проверок качества (например, с помощью плагинов).
  • install — установка пакета в локальный репозиторий Maven для использования в других проектах.
  • deploy — копирование финального артефакта в удаленный репозиторий для совместного использования.

3. site — генерация документации и отчетов (например, Javadoc, отчеты о покрытии кода тестами).

Важно: Фазы выполняются последовательно. Выполнение фазы автоматически запускает все предыдущие фазы в её жизненном цикле. Например, команда mvn install выполнит фазы validate, compile, test, package, verify и затем install.

Пример использования в CI/CD для QA:

# Очистка, сборка и запуск всех тестов перед созданием артефакта
mvn clean verify

# Сборка, тестирование и установка артефакта локально для ручного тестирования
mvn clean install