Жизненный цикл сборки Maven определяет процесс сборки и выпуска проекта. Когда мы разрабатываем проекты, мы постоянно находимся в процессе компиляции, тестирования, упаковки, развертывания и т. д. Жизненный цикл maven заключается в абстрагировании и унификации всех процессов построения.Жизненный цикл включает в себя очистку проекта, инициализацию, компиляцию, тестирование, упаковка и интеграционное тестирование, проверка, развертывание, создание сайта и почти все процессы.
Maven имеет следующие три стандартных жизненных цикла:
- Чистый: процесс очистки проекта
- по умолчанию (или сборка): обработка развертывания проекта
- сайт: Обработка создания документа сайта проекта
Фазы сборки состоят из целей плагина
Цель плагина представляет собой конкретную задачу (более детализированную, чем этап сборки), которая облегчает создание проекта и управление им. Эти цели могут быть связаны с несколькими этапами или не связаны. Цели, которые не привязаны к какой-либо фазе сборки, могут выполняться прямыми вызовами вне жизненного цикла сборки. Порядок, в котором выполняются эти цели, зависит от порядка, в котором вызываются цели и этапы сборки.
Например, следующая команда:
clean
а такжеpakage
этап сборки,dependency:copy-dependencies
является целью
mvn clean dependency:copy-dependencies package
здесьclean
этап будет выполняться первым, затемdependency:copy-dependencies
Цель будет достигнута, и в конце концовpackage
этап выполнен.
Чистый жизненный цикл
Когда мы выполнили команду 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
будет запущен.
Жизненный цикл по умолчанию (сборка)
Это основной жизненный цикл 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.
Жизненный цикл сайта
Плагин Maven Site обычно используется для создания новых документов отчетов, развертывания сайтов и т. д.стадия жизненного цикла | описывать |
---|---|
pre-site | Выполните некоторую работу, которую необходимо выполнить перед созданием документации сайта. |
site | Создание документации сайта для проекта |
post-site | Выполните некоторую работу, которую необходимо выполнить после того, как документация сайта будет сгенерирована и готова к развертыванию. |
site-deploy | Разверните сгенерированную документацию сайта на указанный сервер |
Стадия сайта и стадия развертывания сайта часто используются здесь для создания и публикации сайтов Maven, которые являются довольно мощными функциями Maven.