Ответ 1
По умолчанию Maven создаст идентификатор выполнения, применяя следующие шаблоны в зависимости от разных случаев:
- Идентификатор выполнения, установленный для:
default-cli
для плагина: цели, выполняемые из командной строки - Идентификатор выполнения, установленный для:
default-<goal_name>
для плагина: цели, выполняемые как часть binding, определяемые конкретной упаковкой - Идентификатор выполнения, установленный для:
default
для плагина: выполнение целей как часть POM, которая не указала какой-либо идентификатор.
Если вы выполните Maven Dependency Plugin из командной строки, например, с классической целью mvn dependency:tree
, вы заметите, что default-cli
Идентификатор выполнения:
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ project ---
Если вы посмотрите на вывод любой сборки Maven и при выполнении по умолчанию для Maven Compiler Plugin на этапе компиляции, например, вы заметите default-compile
и default-testCompile
как идентификаторы выполнения целей compile
и testCompile
плагина Maven Compiler.
Тот же шаблон применяется ко всем плагинам/целям по умолчанию, выполняемым Maven как часть binding, определенных для данной упаковки. Идентификаторы выполнения всегда находятся между изогнутыми скобками сразу после соответствующего имени плагина и цели.
Например, вырез базовой сборки Maven:
[INFO] --- maven-clean-plugin:2.5:clean (default-clean)
[INFO] --- maven-resources-plugin:2.6:resources (default-resources)
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile)
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources)
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile)
[INFO] --- maven-surefire-plugin:2.19:test (default-test)
Показывает, как идентификаторы выполнения (последний токен в фрагменте выше, между скобками) всегда следуют этому шаблону.
Наконец, если вы настроите выполнение любого плагина в своей POM без указания идентификатора, вы увидите идентификатор default
, примененный Maven:
[INFO] --- exec-maven-plugin:1.1:java (default) @ project ---
От официальная документация Maven:
Идентификатор выполнения командной строки
каждый mojo, вызываемый непосредственно из командной строки, будет иметь назначенный ему идентификатор выполнения по умолчанию-cli, который позволит выполнить конфигурацию этого выполнения из POM с помощью этого идентификатора выполнения по умолчанию
Идентификатор выполнения привязки по умолчанию
каждый mojo, привязанный к жизненному циклу сборки через отображение жизненного цикла по умолчанию для указанной упаковки POM, будет иметь идентификатор выполнения по умолчанию-goalName, назначенный ему
Идентификатор выполнения плагина по умолчанию
значение по умолчанию для executeId - буквально установленное по умолчанию в модели POM - предназначалось для предоставления некоторых из этих функций. К сожалению, это решение никогда не тестировалось, чтобы убедиться, что оно работает с вышеприведенными случаями; они проваливались сквозь трещины во время тестирования. Теперь, с выпуском Maven 2.2.0 (и позже, Maven 3.0), эти примеры использования, наконец, могут быть адресованы
И последнее, но не менее важное: в отношении идентификаторов выполнения, поскольку Maven 3.3.1 вы можете даже указать конкретный идентификатор выполнения вашего POM из командной строки с помощью нового оператора @executionId