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


97

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

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

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

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


回答:


134

コマンドラインから直接mavenプラグインの実行を実行する方法で述べたように?、この機能はMNG-5768として実装されており、Maven 3.3.1で使用できます。

変更は次のようになります。

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

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

mvn sql:execute@specific-execution-id

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


これは素晴らしいです:)
GabrielBB

49

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

いいえ、できません。ただし、プラグインが「特別な」実行ID を使用してコマンドラインから呼び出されたときに使用される「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>。詳細については、Guide to Default Execution IDsを参照してください。

1
私は2つの異なるプロファイル使って、あなたが望むものを達成できる賭ける
ダニエル・カプランを

4
この回答は現在、Mavenの現在のバージョンでは古くなっています。@Joeの回答をご覧ください
Noremac
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.