コマンドラインから直接Mavenプラグインの実行を実行する方法は?


93

IDがあり、どのフェーズにもバインドされていない実行が設定されたプラグイン(antrun)があります。この実行をコマンドラインから直接実行できますか?

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>my-execution</id>
      ...
    </execution>
  </executions>
</plugin>

次のようなもので実行してください:

mvn my-execution

または少なくとも

mvn magicplugin:execute -DexecutionId=my-execution

回答:


128

この機能はMNG-5768として実装されており、Maven 3.3.1で使用できます。

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

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

したがって、あなたの場合:

mvn antrun:run

default-cli実行IDを使用します。

mvn antrun:run@my-execution

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


1
アーティファクトID「maven-antrun-plugin」から、それが「antrun」だけで使用されていることをどのように知ることができmvn antrun:runますか?
mks-d

1
@ mks-dはpluginGroupsorg.apache.maven.plugins:maven-antrun-pluginと呼ばれる理由について参照してくださいantrun
ジョー

1
@Joeありがとう、プラグイングループに加えて、プラグインプレフィックス解決メカニズムもあるようです...
mks-d

49

Mavenプラグインを実行する最も直接的な方法は、コマンドラインでプラグインの目標を直接指定することです。

mvn groupId:artifactId:version:goal

詳細情報:Mavenプラグインの開発ガイド


1
しかし、「default-cli」の実行を正確に実行するにはどうすればよいですか?プラグイン定義に複数の実行がある場合。
アントンバラショフ2017年

私は、Spring Boot Jasyptユーティリティプラグインを実行するために戦っていました。何らかの理由で、Mavenに認識されるようにする唯一の方法は、上記のアドバイスに従うことでした。目標を直接指定するだけ(mvn jasypt:encrypt ...)では不十分でした。@ dimitri-dewaeleに感謝します。
マイク

15

あなたが探しているものはDefault + Plugin + Execution + IDsでキャプチャされていますが、私の知る限り、現在サポートされていません。ただし、MNG-3401のコメントによると(最後まで読んでください):

コマンドラインから直接呼び出されるmojoの場合、次のようにexecutionId: 'default-cli'を使用してPOMから構成を提供できます。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
          <descriptorRef>project</descriptorRef>
        </descriptorRefs>
      </configuration>
    </execution>
  </executions>
</plugin>

これはMaven 2.2.0および3.xで動作するはずです。

多分これで十分でしょう。


あなたの答えが正しければ、それはまさに質問イベントではありませんでした;)
トニーChemit 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.