Запустити одне виконання плагіна Maven?


97

Я думав, що я досвідчений користувач Maven, але я маю розумову думку про те, як це зробити!

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

Однак зараз я хотів би використовувати той самий плагін sql, щоб вставити деякі зразки даних, коли завгодно, з командного рядка - тобто не прив'язаний до жодної цілі життєвого циклу. Існує кілька різних наборів зразків даних, тому я хотів би визначити кілька різних виконань.

Але чи є спосіб запустити одне з цих виконань із командного рядка, використовуючи, можливо, ідентифікатор виконання?


Відповіді:


134

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

Зміни:

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

Отже, поки ви даєте виконанню ідентифікатор:

mvn sql:execute@specific-execution-id

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


Це чудово :)
GabrielBB

49

Але чи є спосіб запустити одне з цих виконань із командного рядка, використовуючи, можливо, ідентифікатор виконання?

Ні, неможливо . Однак можливо визначити конфігурацію "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>. Для отримання додаткової інформації див. Посібник із ідентифікаторів виконання за замовчуванням .

1
Б'юся об заклад, ви могли досягти бажаного, використовуючи два різні профілі
Даніель Каплан,

4
Ця відповідь зараз застаріла в сучасних версіях Maven. Дивіться відповідь, надану @Joe
Noremac
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.