Как выполнить запуск плагина maven непосредственно из командной строки?
У меня есть плагин (antrun) с выполненным исполнением, который имеет идентификатор и не привязан к какой-либо фазе. Могу ли я выполнить это выполнение непосредственно из командной строки?
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>my-execution</id>
...
</execution>
</executions>
</plugin>
Запустите его с чем-то вроде:
mvn my-execution
или по крайней мере
mvn magicplugin:execute -DexecutionId=my-execution
Ответы
Ответ 1
Эта функциональность была реализована как MNG-5768, и доступен в Maven 3.3.1.
Изменение будет:
продлить прямой синтаксис вызова плагина, чтобы разрешить необязательный параметр @execute-id, например org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @executionId.
Итак, в вашем случае:
mvn antrun:run
использует идентификатор выполнения default-cli
и:
mvn antrun:[email protected]
использует выполнение, настроенное в вашей папке.
Ответ 2
То, что вы ищете, зафиксировано в Default+Plugin+Execution+IDs, но, насколько мне известно, в настоящее время не поддерживается. Однако, согласно комментариям MNG-3401 (читайте их до конца):
для mojos, вызываемых непосредственно из командной строки, вы можете предоставить конфигурации из POM с использованием executeId: 'default-cli' следующим образом:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
Это должно работать в Maven 2.2.0 и 3.х.
Возможно, этого будет достаточно для вас.
Ответ 3
Наиболее прямым средством выполнения вашего плагина maven является указание цели плагина непосредственно в командной строке.
mvn groupId:artifactId:version:goal
Дополнительная информация: Руководство по разработке плагинов Maven