Як виконати виконання плагіна maven безпосередньо з командного рядка?


95

У мене є плагін (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

Відповіді:


130

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

Зміни:

розширити синтаксис прямого виклику плагіна, щоб дозволити необов’язковий параметр @ Execution-id, наприклад, org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ execuId.

Отже, у вашому випадку:

mvn antrun:run

використовує default-cliідентифікатор виконання та:

mvn antrun:run@my-execution

використовує виконання, налаштоване у вашому pom.


1
З ідентифікатора артефакту "maven-antrun-plugin", як ми дізнаємось, що саме "antrun" слід використовувати mvn antrun:run?
mks-d

1
@ mks-d подивіться, pluginGroupsчому org.apache.maven.plugins:maven-antrun-pluginможна називати це antrun.
Джо

1
@Joe спасибі, поверх груп плагінів є ще й механізм
mks-d

51

Найбільш прямим способом виконання вашого плагіна maven є вказання цілі плагіна безпосередньо в командному рядку.

mvn groupId:artifactId:version:goal

Більше інформації на: Посібник з розробки плагінів Maven


1
Але як я можу запустити саме виконання "default-cli"? Якщо у визначенні плагіна є кілька виконань.
Антон Балашов,

Я боровся за те, щоб запустити утиліту Spring Boot Jasypt, і з будь-якої причини єдиним способом, яким я міг отримати його, щоб його визнали Maven, було дотримуючись наведених вище порад. Просто вказати ціль безпосередньо ( mvn jasypt:encrypt ...) було недостатньо. Дякую @ dimitri-dewaele.
Майк,

15

Те, що ви шукаєте, фіксується за замовчуванням + плагін + виконання + ідентифікатори, але, наскільки мені відомо, наразі не підтримується. Однак, згідно з коментарями MNG-3401 (прочитайте їх до кінця):

для mojos, що викликаються безпосередньо з командного рядка, ви можете надати конфігурацію з POM, використовуючи ExecuId: '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.

Можливо, цього вам буде достатньо.


це була не зовсім подія запитання, якщо ваша відповідь правильна;).
Тоні Чеміт,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.