Как выполнить плагин 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

3 ответа

Эта функциональность была реализована как MNG-5768 и доступна в Maven 3.3.1.

Изменение будет:

расширить синтаксис прямого вызова плагина, чтобы разрешить необязательный параметр @execute-id, например org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process@executeId.

Итак, в вашем случае:

mvn antrun:run

использует default-cli идентификатор выполнения и:

mvn antrun:run@my-execution

использует исполнение, сконфигурированное в вашем pom.

Самый прямой способ запуска вашего плагина maven - указать цель плагина непосредственно в командной строке.

mvn groupId:artifactId:version:goal

Более подробная информация на: Руководство по разработке плагинов Maven

То, что вы ищете, записано в Default + Plugin + Execution + ID, но, насколько мне известно, в настоящее время не поддерживается. Однако, согласно комментариям 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.x.

Может быть, этого будет достаточно для вас.

Другие вопросы по тегам