Жизненный цикл сборки Maven

Java maven

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

Maven имеет следующие три стандартных жизненных цикла:

  • Чистый: процесс очистки проекта
  • по умолчанию (или сборка): обработка развертывания проекта
  • сайт: Обработка создания документа сайта проекта

Фазы сборки состоят из целей плагина

Цель плагина представляет собой конкретную задачу (более детализированную, чем этап сборки), которая облегчает создание проекта и управление им. Эти цели могут быть связаны с несколькими этапами или не связаны. Цели, которые не привязаны к какой-либо фазе сборки, могут выполняться прямыми вызовами вне жизненного цикла сборки. Порядок, в котором выполняются эти цели, зависит от порядка, в котором вызываются цели и этапы сборки.

Например, следующая команда:

cleanа такжеpakageэтап сборки,dependency:copy-dependenciesявляется целью

mvn clean dependency:copy-dependencies package

здесьcleanэтап будет выполняться первым, затемdependency:copy-dependenciesЦель будет достигнута, и в конце концовpackageэтап выполнен.


Чистый жизненный цикл

CleanLifecycle
Когда мы выполнили команду MVN Post-Clean, Maven вызывает чистый жизненный цикл, который включает в себя следующие этапы:

  • pre-clean: выполнить некоторую работу, которую необходимо выполнить перед очисткой
  • clean: удалить все файлы, созданные предыдущей сборкой
  • post-clean: выполнить некоторую работу, которую необходимо выполнить сразу после очистки

mvn cleanсерединаcleanвышеclean, в жизненном цикле при запуске этапа будут запущены все этапы до него, т. е.mvn cleanЭквивалентноmvn pre-clean cleanЕсли мы бежимmvn post-clean,Такpre-clean,cleanбудет запущен.

Жизненный цикл по умолчанию (сборка)

DefaultLifecycle
Это основной жизненный цикл Maven, используемый для создания приложений, и состоит из следующих 23 фаз:

стадия жизненного цикла описывать
validate Убедитесь, что конфигурация проекта верна и доступна вся необходимая информация для завершения процесса сборки.
initialize Инициализируйте состояние сборки, например задайте свойства.
generate-sources Создайте все исходные файлы, которые необходимо включить на этапе компиляции.
process-sources Обработайте исходный код, например, отфильтруйте любое значение.
generate-resources Создайте файлы ресурсов, которые необходимо включить в пакет проекта.
process-resources Скопируйте и обработайте файлы ресурсов в целевой каталог для подготовки к этапу упаковки.
compile Скомпилируйте исходный код проекта.
process-classes Обрабатывает скомпилированные файлы, такие как улучшения и оптимизации байт-кода класса Java.
generate-test-sources Создайте любой тестовый исходный код, который необходимо включить на этапе компиляции.
process-test-sources Обработайте исходный код теста, например, отфильтруйте любые значения.
test-compile Скомпилируйте исходный код теста в целевой каталог теста.
process-test-classes Обработайте файлы, сгенерированные после компиляции файлов тестового кода.
test Запустите тесты, используя соответствующую среду модульного тестирования, такую ​​как JUnit.
prepare-package Сделайте все необходимое для подготовки к упаковке, прежде чем на самом деле упаковать.
package Возьмите скомпилированный код и упакуйте его в пригодный для выпуска формат, такой как файл JAR, WAR или EAR.
pre-integration-test Перед выполнением интеграционных тестов выполните необходимые действия. Например, установите необходимые переменные среды.
integration-test Обработайте и разверните необходимые инженерные пакеты в среде, где можно запускать интеграционные тесты.
post-integration-test Выполните необходимые действия после выполнения интеграционных тестов. Например, очистить окружающую среду.
verify Запустите операции проверки, чтобы убедиться, что инженерные пакеты действительны и соответствуют требованиям качества.
install Установите пакет проекта в локальный репозиторий, который можно использовать как зависимость от других локальных проектов.
deploy Скопируйте окончательный пакет проекта в удаленный репозиторий, чтобы поделиться с другими разработчиками и проектами.

Есть несколько важных концепций, связанных с жизненным циклом Maven, которые необходимо объяснить: Когда этап вызывается с помощью команды Maven, например.mvn compile, будут выполнены только все фазы до этой фазы включительно. Различные цели maven будут основаны на типе упаковки (JAR / WAR / EAR), привязаны к разным фазам жизненного цикла Maven.

Жизненный цикл сайта

SiteLifecycle
Плагин Maven Site обычно используется для создания новых документов отчетов, развертывания сайтов и т. д.

стадия жизненного цикла описывать
pre-site Выполните некоторую работу, которую необходимо выполнить перед созданием документации сайта.
site Создание документации сайта для проекта
post-site Выполните некоторую работу, которую необходимо выполнить после того, как документация сайта будет сгенерирована и готова к развертыванию.
site-deploy Разверните сгенерированную документацию сайта на указанный сервер

Стадия сайта и стадия развертывания сайта часто используются здесь для создания и публикации сайтов Maven, которые являются довольно мощными функциями Maven.