Я только изучаю Maven, и это может быть очевидно, но я не могу найти простой способ перечислить цели, связанные с каждой фазой жизненного цикла maven для данного проекта.
Я видел, что здесь задокументированы этапы жизненного цикла Maven по умолчанию и соответствующие цели по умолчанию . На данный момент я понимаю, что каждый pom.xml может связывать дополнительные цели с каждой фазой жизненного цикла.
Итак, существует ли команда mvn для определения целей, которые будут выполняться для каждой фазы жизненного цикла данного проекта? Если нет, я думаю, мне просто нужно просмотреть pom.xml для каждого нового проекта maven, чтобы понять это?
Это
buildplan-maven-plugin
отличный инструмент для демонстрации привязки целей к фазам.Ниже приведены примеры команд, которые вы можете запустить. Команды автоматически загрузят и установят плагин, если он еще не установлен.
Перечислите цели в порядке их выполнения
Группируйте цели по фазам
Группируйте цели по плагинам
Ноты
По умолчанию цели ищут задачи, которые будут запущены при вызове пользователя
mvn deploy
. Такие фазы, какclean
, не будут включены. Чтобы включить в поиск несколько этапов, используйтеbuildplan.tasks
свойство:источник
mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,install,deploy
Один из инструментов, который помогает, -
mvn help:effective-pom
это распечатать POM со всеми переменными и всеми родительскими POM. Это помогает понять, что видит Maven. Отсюда довольно просто найти все дополнительные цели (которых обычно не так много).Более серьезная проблема - это неявные цели (т.е. когда плагин автоматически подключается к некоторым фазам жизненного цикла). Нет простого способа увидеть их, не запустив Maven. В Maven 3 это должно стать лучше. А пока запустите Maven, с
-X
которым будет печататься много отладочной информации, плюс текущая фаза и какие плагины выполняются.источник
Если не с Maven, но с m2e, вы можете сделать это с помощью блока кода, который вы можете использовать в плагине Eclipse:
Посмотрите полный исходный код .
Уже реализовано в:
http://marketplace.eclipse.org/content/phases-and-goals
Он использует способность m2e вычислять связь целей с фазами. Я также пытаюсь решить это на уровне maven.
источник
Я поместил ответ Чада в сценарий (так что мне не нужно запоминать имя плагина, которое действительно длинное). Поместите его в свою папку ~ / bin /, чтобы вы могли использовать его где угодно.
источник