web-dev-qa-db-ja.com

単一のMavenプラグインを実行しますか?

私は自分が経験豊富なMavenユーザーだと思っていましたが、これを行う方法に関して精神的な障害があります!

Maven SQLプラグインを使用して、pre-integration-testフェーズに定義してバインドしたプラグインの実行により、データベースにスキーマをドロップ、作成、およびインストールできました。

しかし、今では、同じSQLプラグインを使用して、コマンドラインから必要なときにいつでもサンプルデータを挿入したいと考えています。つまり、ライフサイクルの目標に縛られていません。サンプルデータにはいくつかの異なるセットがあるため、いくつかの異なる実行を定義したいと思います。

しかし、おそらく実行IDを使用してコマンドラインからこれらの実行の1つを実行する方法はありますか?

86
HDave

コマンドラインからmavenプラグインを直接実行する方法? で説明したように、この機能は 実装済み as MNG-5768 であり、 Maven 3.3.1。

変更は:

org.Apache.maven.plugins:maven-remote-resources-plugin:1.0:process @ executionIdのように、オプションの@ execution-idパラメーターを許可するように直接プラグイン呼び出し構文を拡張します。

したがって、実行にIDを与える限り:

mvn sql:execute@specific-execution-id

pOMで設定された実行を使用します。

112
Joe

しかし、おそらく実行IDを使用してコマンドラインからこれらの実行の1つを実行する方法はありますか?

いいえ、 不可能 。ただし、「特別な」default-cli実行IDを使用してコマンドラインからプラグインを呼び出すときに使用する "a"構成を定義することは可能です。

<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以降、コマンドラインから直接呼び出される目標は、default-cliという特別なexecutionIdを使用して、他のプラグイン呼び出しとは別にPOMで設定できます。以前は、コマンドラインの目標のすべての設定はプラグインレベルの設定で行う必要がありましたが、Maven 2.2.0ではコマンドライン固有の設定を独自の<execution>に分離できます。詳細については、 デフォルトの実行IDのガイド を参照してください。
47
Pascal Thivent