Запустить одно исполнение плагина Maven?

Я думал, что я опытный пользователь Maven, но у меня есть умственный блок, как это сделать!

Я смог использовать плагин Maven sql для удаления, создания и установки схемы в базе данных с помощью плагинов, которые я определил и привязал к фазе pre-integration-test.

Однако теперь я хотел бы использовать тот же самый плагин sql для вставки некоторых выборочных данных всякий раз, когда я хочу из командной строки, то есть не привязан к какой-либо цели жизненного цикла. Есть несколько разных наборов данных образца, поэтому я хотел бы определить несколько разных исполнений.

Но есть ли способ запустить одно из этих исполнений из командной строки, используя идентификатор выполнения, возможно?

Ответ 1

Как указано в Как выполнить выполнение плагина maven непосредственно из командной строки?, это функциональность была реализована как MNG-5768 и доступна в Maven 3.3.1.

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

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

Итак, до тех пор, пока вы отдаете свое исполнение id:

mvn sql:[email protected]

использует выполнение, настроенное в вашей папке.

Ответ 2

Но есть ли способ запустить одно из этих исполнений из командной строки, используя идентификатор выполнения, возможно?

Нет, невозможно. Однако возможно определить конфигурацию "a" , которая будет использоваться, когда плагин вызывается из командной строки с помощью "специального" default-cli идентификатора выполнения:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>
  ...
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        ...
      </configuration>
    </execution>
    ...
  </executions>
</plugin>

И просто позвоните mvn sql:execute.

Подробнее см. ниже (из Замечания по выпуску Maven 2.2.0):

  • MNG-3401 - Начиная с Maven 2.2.0, цели, вызванные непосредственно из командную строку можно настроить в POM отдельно от другого плагина с помощью специальных executionId называется default-cli. Где раньше все конфигурации для целей командной строки необходимо было конфигурация на уровне плагина, Maven 2.2.0 позволяет разделить конфигурации, зависящие от командной строки, на их собственный <execution>. Для большего информацию см. в Руководство по умолчанию Идентификаторы выполнения.