Maven: связь между этапом жизненного цикла и целью - PullRequest
16 голосов
/ 07 ноября 2011

Мне тяжело видеть "лес сквозь деревья" на некоторых концепциях Maven здесь. Я понимаю, что Maven поставляется с предварительно настроенным набором так называемых « Build Lifecycle Phases », которые начинаются с validate и test и заканчиваются deploy.

Я приезжаю в Maven из Ant, где вы организовали основные этапы сборки в цели (которые могут зависеть от других целей в линейной форме), а затем вы разбиваете свои цели на процедурные задачи. Maven, кажется, поддерживает это, но в форме goal .

Мой вопрос (поскольку я привык думать о построении с точки зрения целей и задач): как эти фазы жизненного цикла (package, verify и т. Д.) Связаны с целями? Нужно ли настраивать, какие цели выполнять на каком этапе, или Maven каким-то образом это делает автоматически?

Или цели предопределены, к какой фазе они принадлежат?

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

Заранее спасибо за ясность!

Ответы [ 2 ]

11 голосов
/ 07 ноября 2011

Многие плагины Maven связывают определенную цель (mojo) с определенной фазой жизненного цикла.

Например, ищите документацию maven-jar-plugin:jar goal .В нем говорится:

По умолчанию привязывается к фазе жизненного цикла: пакет.

Кроме того, сам жизненный цикл определяет, какие инструменты необходимо запустить для каждой фазы.Для типов упаковки по умолчанию эти инструменты предопределены Maven и объяснены здесь -> http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings.

Но в этом примере показано, как создать полностью настраиваемую привязку жизненного цикла -> http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/. Как вы можете видеть, вы можете связатьлюбая комбинация целей плагинов для определенной фазы жизненного цикла.

Наконец, но не в последнюю очередь, вы можете добавить выполнение плагинов вручную через элемент build/plugins вашего файла pom.Если вы сделаете это, плагины в определенных фазах будут выполняться в порядке FIFO.

Кроме того, это может помочь вам увидеть Effective POM со всеми этими значениями по умолчанию.Многие IDE предлагают эту опцию для проектов Maven, но вы также можете увидеть эффективный pom из командной строки:

mvn help:effective-pom
0 голосов
/ 11 июля 2018

Maven имеет 3 жизненных цикла, которые выполняются в несколько этапов (упаковка, проверка и т. Д.). Когда эти фазы выполняются, он также вызывает предыдущие фазы.

Цели - это отдельные задачи. Когда он вызывается, эта конкретная задача выполняется. Проверьте ниже блог для более подробного объяснения. https://techytopics.wordpress.com/maven-simplified/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...