あなたは@executionId
追加のオプションを使用して、Mavenの上3.3.1とthis新機能から始まるコマンドラインからゴール(およびその実行を)実行することができます。
Mavenと実行IDについては、this SO questionも確認できます。 Mavenの3.3.1前
あなたの代わりに、通常は害(validate
など)と、以下のようなものを持っていない相への2つの実行バインドできます。そして、実行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution-1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution-2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
を:
mvn validate
同じプラグインの同じ目標を2回実行すると、無害な段階。
デフォルト(理解しやすい)ことで、この相の一部としてそれらを持ってしたくない場合は、プロファイルに移動し、実行の一部としてそれをアクティブにすることができます:完全性については
mvn validate -PpluginGoalExecution
、プロファイルは次のようになります。
<profile>
<id>pluginExecution</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
そして、それは言うまでもない:プロファイルのidが、この場合、どのプラグインについてはかなり自明であるべきで、それが実際に実行することになるの目標(つまり、の目的でありますプロフィール、通常通り)。
更新
ただ、化粧ていますが、要素の上にプロファイリングのビルドに追加することができます。だから、あなたが唯一の次のMavenコマンド(プロファイルだけ活性化)を実行する必要があること
<defaultGoal>validate</defaultGoal>
:
mvn -PpluginGoalExecution
これで、検証フェーズと構成済みのプラグインの実行が自動的に実行されます。大きな変化ではありませんが(私が言ったように、美容的ですが)、プラグインのゴール実行に近いかもしれません。
ありがとうございました。それは良い答えです。残念ながら私はまだMaven 3.0.5にいます。 – peterh
もしあなたがMaven 3.0.5を使っているなら、それは不可能です... 'mvn -PXXX1 ...'で有効にできるプロファイルを介してのみ可能です... – khmarbaise
@peterh ok私はそれに応じて私の答えを更新します、それはあなたの価値があるかもしれません –