Жизненный цикл

Сразу хочу отметить, если вы используете intellijIdea, то в этой среде уже присутствуют все необходимое из жизненных циклов. Что то изучать дополнительно нет необходимости. Сразу начну с главного.Команды жизненного цикла это то что вы хотите получить от работы Maven.Вот пример цикла из среды разработки intellijIdea:

Кратко опишем каждую из команд LifeCycle:

compile Компиляция проекта. Для тех кто не знает:компиляция_это                      перевод программы,написанной на более высоком языке в машинный                  код,который понятен процессору. Процессор понимает машинный код

test  Тестирование с помощью JUnit тестов.Это  отладка вашего кода тестами, которые вы же и придумываете для своей программы используя библиотеку JUnit. Достаточно сомнительно занятие.

package  Создание .jar файла или war, ear в зависимости от типа проекта.Создается конечный файл вашей программы. Помещается в папку Target.

install Копирование .jar (war , ear) в локальный репозиторий

deploy  публикация файла в удалённый репозиторий

Особняком стоят команды:

clean  очистка проекта от лишних файлов .class, .jar и других файлов. В простом случае удалит весь каталог target

site создаст документацию проекта javadoc. И собирает сайт.Что это за хрень, я еще не разобрался.

Таким образом, при работе в IntellijIdea, достаточно выбрать нужную вам команду, нажать на нее и получить необходимый результат.

Опишу жизненный цикл более подробно и занудно

В Maven есть описание фаз и целей. Когда Maven нужно что-то сделать , например, почистить проект, собрать проект, запустить тесты, то Maven делает кучу вещей, которые описаны в так называемом goals-цель. Цели собирают в фазы-Phase. Фаза-это действие. Т.е. действие преследует какую то цель. Например действие сборка имеет цель получить готовый jar файл. Все действия фазы собраны в жизненный цикл. Вот в этом цикле можно выбрать нужное нам действие и запустить его.Витиевато устроено.Я бы сказал пафосно.

При выполнении команды на сборку проекта (package) выполняются следующие действия:

Phase plugin:goal

process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
package jar:jar
install install:install
deploy deploy:deploy

Стало понятней? А как облегчилась работа, не правда ли?

В общем в каждой фазе куча целей. Цели можно запуска отдельно, можно их переопределять к другим фазам, можно отключать в фазе цели и т д.

Пресловутый site имеет четыре фазы-goals:

  • pre-site -подготовка сайта
  • site -формирование сайта
  • post-site — подготовка к публикации сайта
  • deploy- публикация сайта

Если необходимо изучить цели плагинов, то необходимо обратиться к документации на эти плагины на сайте разработчиков.