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

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

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

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

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


person HDave    schedule 23.09.2010    source источник
comment


Ответы (2)


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

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

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

Итак, пока вы даете своему исполнению идентификатор:

mvn sql:execute@specific-execution-id

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

person Joe    schedule 28.02.2015
comment
Отлично :) - person GabrielBB; 03.05.2020

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

Нет, невозможно. Однако можно определить конфигурацию «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>. Для получения дополнительной информации см. Руководство по идентификаторам выполнения по умолчанию. .
person Pascal Thivent    schedule 23.09.2010
comment
Бьюсь об заклад, вы могли бы добиться того, чего хотите, используя два разных профиля. - person Daniel Kaplan; 07.08.2013
comment
Этот ответ теперь устарел с текущими версиями Maven. См. Ответ @Joe - person Noremac; 02.09.2015