web-dev-qa-db-ja.com

Mavenプラグインの特定の構成で特定の目標を実行するにはどうすればよいですか?

以下のpom.xmlのプラグイン設定を参照してください。

できます:

mvn myplugin:myGoal

これはmyGoal(両方の実行を想定)を実行しますが、最初または2番目の実行を独立して選択できるようにしたいです。

実行要素にidを追加できることは知っていますが、コマンドラインでそのidを参照するにはどうすればよいですか。この想像されたコマンドが行うことを行う何かに到達したいと思います:

mvn myplugin:myGoal --executionId=1

これは可能ですか、それとも間違った方法ですか?

        <plugin>
            <groupId>org.myplugin</groupId>
            <artifactId>myplugin-maven-plugin</artifactId>
            <version>1.1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>myGoal</goal>
                    </goals>
                    <configuration>
                        <myParam>cats</myParam>
                    </configuration>
                </execution>
                <execution>
                    <goals>
                        <goal>myGoal</goal>
                    </goals>
                    <configuration>
                        <myParam>dogs</myParam>
                    </configuration>
                </execution>
            </executions>
        </plugin>
26
lukewm

_mvn myplugin:myGoalWhich_を実行できますmyGoalを実行します(両方の実行を想定)

それらのどれも(それらが一意のidを持っていると仮定して)。実行はフェーズにバインドされているため、指定されたフェーズを実行してトリガーする必要があります。

実行要素にidを追加できることは知っていますが、コマンドラインでそのidを参照するにはどうすればよいですか。

サポートされていません。 CLIで呼び出されるプラグインで可能なことは、次のように特別な_default-cli_ executionIdを使用して、POMでnon global構成を定義することです。

_<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>
_

これは可能ですか、それとも間違った方法ですか?

いいえ、できません。コマンドラインでパラメーターを渡すか、プロファイルを使用します(上記のデフォルトの実行の有無にかかわらず)。

参照資料

20
Pascal Thivent

CLIからの複数の目標の実行がMaven 3.3.1+でサポートされるようになりました

mvn exec:Java@first-cli
mvn exec:Java@second-cli

ここで、first-cli/second-cliは実行IDです。

http://blog.soebes.de/blog/2015/03/17/Apache-maven-3-dot-3-1-features/

27
mdi

ねえ、あなたはこのようにあなたの目標を作成することができます:-

org.myplugin:myplugin-maven-plugin:1.1.1:myGoal  i.e
<groupId>:<artifactId>:<version>:<yourgoal>

私の場合はうまくいきます...

7
Onkar_M18

あなたが電話すると

  mvn myplugin:myGoal

しかし、問題は、実行に一意のIDがないためにエラーメッセージが表示されることです(この場合は両方とも同じです)。

Mvn -PXYZおよびmvn -PABCを介してアクティブにできるプロファイルを介して、やりたいことに到達できます。

3
khmarbaise