Перечислите все возможные цели в Maven 2?

105

Я новичок в Maven, из мира Ant.

Можно ли перечислить все возможные цели (включая, скажем, все плагины), которые вы можете запустить?

Я вижу, что раньше -gв Maven 1 был флаг, но он недоступен в версии 2.

Ноэль М
источник
4
Меня сводит с ума, что maven не может ответить на этот вопрос без страниц xml! Хорошая вещь!
Киевели 05
1
Возможный дубликат Как вывести список доступных целей?
200_success

Ответы:

120

Цель, которую вы указываете в командной строке, связана с жизненным циклом Maven. Например, buildжизненный цикл (вы также имеете cleanи siteжизненные циклы , которые отличаются) состоят из следующих этапов:

  • validate: подтвердите правильность проекта и наличие всей необходимой информации.
  • compile: скомпилировать исходный код проекта.
  • test: протестировать скомпилированный исходный код с помощью подходящей среды модульного тестирования. Эти тесты не должны требовать, чтобы код был упакован или развернут.
  • package: взять скомпилированный код и упаковать его в распространяемый формат, такой как JAR.
  • integration-test: обработать и при необходимости развернуть пакет в среде, в которой можно запускать интеграционные тесты.
  • verify: выполнить любые проверки, чтобы убедиться, что пакет действителен и соответствует критериям качества
  • install: установить пакет в локальный репозиторий для использования в качестве зависимости в других проектах локально.
  • deploy: done в среде интеграции или выпуска копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами.

Вы можете найти список «основных» плагинов здесь , но есть много других плагинов, таких как Codehaus них, здесь .

Ромен Линсолас
источник
1
взгляните на Справочник по жизненному циклу. Здесь перечислены все части жизненного цикла.
Salandur,
51

Можно ли перечислить все возможные цели (включая, скажем, все плагины), которые можно запустить?

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

Но вы можете упростить задачу и использовать возможности завершения bash (используя cygwin, если вы работаете под Windows), как описано в Руководстве по автозаполнению Maven 2.x с использованием BASH (но прежде чем выбирать сценарий из этого руководства, прочтите дальше ).

Чтобы все заработало, сначала следуйте этому руководству по настройке завершения bash на вашем компьютере. Затем пришло время получить скрипт для Maven2 и:

  • Хотя вы можете использовать тот из мини-гида
  • Пока используете улучшенную версию, прикрепленную к MNG-3928
  • Хотя вы можете использовать случайные скрипты, найденные в сети (посмотрите ресурсы, если вам интересно)
  • Я лично использую сценарий Bash Completion из PPA Людовика Клода (который включен в упакованную версию mavenUbuntu), который вы можете загрузить из HEAD. Просто лучший .

Вот что я получил, чтобы проиллюстрировать результат:

$ mvn [tab] [tab]
 Показать все 377 возможностей? (да или нет)
муравей: муравей 
муравей: чистый 
муравей: помощь 
antrun: помощь 
antrun: запустить 
архетип: ползать 
архетип: создать 
архетип: создать из проекта 
архетип: генерировать 
архетип: помощь 
сборка: сборка 
сборка: каталог 
сборка: каталог-одиночный 
сборка: помощь 
сборка: одиночная  
... 

Конечно, я никогда не просматриваю 377 возможностей, я использую завершение. Но это дает представление о размере списка "а" :)

Ресурсы

Паскаль Тивент
источник
2
Еще не смотрел, но есть ли в новом Maven Shellинструменте автоматическое завершение, которое может быть здесь полезно?
Ромен Линсолас,
2
@romain Нет, mvnshне обеспечивает завершения (по крайней мере, не в той версии, которая установлена ​​на моей машине). Я проверил, прежде чем ответить :)
Паскаль Тивент
7

Если вы используете IntelliJ IDEA, вы можете просматривать все цели / задачи maven (включая плагины) на Maven Projectsвкладке:

Проекты Maven

Денис Княжев
источник
2
Я хотел бы сделать это с помощью какой-нибудь команды. Как это делает IntelliJ IDEA?
nacho4d 01
0

Давайте сделаем это очень просто:

Жизненные циклы Maven: 1. Очистить 2. По умолчанию (сборка) 3. Сайт

Этапы Maven жизненного цикла по умолчанию: 1. Проверка 2. Компиляция 3. Тест 4. Пакет 5. Проверка 6. Установка 7. Развертывание

Примечание: не путайте и не путайте цели maven с жизненным циклом maven.

См. Основные сведения о жизненном цикле сборки Maven 1

Нэш
источник
0

Жизненный цикл сборки состоит из фаз

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

Например, жизненный цикл по умолчанию состоит из следующих этапов (полный список этапов жизненного цикла см. В Справочнике по жизненному циклу):

  • validate - подтвердить правильность проекта и доступность всей необходимой информации
  • compile - компилировать исходный код проекта
  • test - протестируйте скомпилированный исходный код с помощью подходящей среды модульного тестирования. Эти тесты не должны требовать, чтобы код был упакован или развернут.
  • package - возьмите скомпилированный код и упакуйте его в распространяемый формат, такой как JAR. verify - запускать любые проверки результатов интеграционных тестов, чтобы гарантировать соответствие критериям качества
  • install - установить пакет в локальный репозиторий для использования в качестве зависимости в других проектах локально
  • deploy - выполняется в среде сборки, последний пакет копируется в удаленный репозиторий для совместного использования с другими разработчиками и проектами.

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

Источник: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Aguid
источник