可以執行的命令行從Maven的3.3.1上this新功能開始一個目標(及其執行),通過@executionId
附加選項。
關於Maven和執行ID的生成,您還可以檢查this SO question。
的Maven之前3.3.1你可以改爲綁定兩次執行的階段,這通常不會損害(如validate
),並有類似如下:
<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
您將有效執行同一個插件的相同目標的兩個執行,作爲無害的一部分相。
如果你不想讓他們爲默認(理解)這個階段的一部分,那麼你可以將它們移到一個配置文件並激活它作爲執行的一部分:
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應該在這種情況下是其目標實際上將執行(即,目的相當自我解釋哪些插件和像往常一樣)。
更新
只是化妝品,但你也可以添加到異形材元素之上:
<defaultGoal>validate</defaultGoal>
所以,你只需要運行以下Maven命令(僅輪廓激活):
mvn -PpluginGoalExecution
然後它會自動執行驗證階段和配置的插件執行。沒有什麼大的變化(正如我所說的,化妝品),但可能更接近插件目標執行,而不是Maven階段調用(再次,只是外觀)。
謝謝。這是一個很好的答案。不幸的是我仍然在Maven 3.0.5上。 – peterh
如果你使用的是Maven 3.0.5,這是不可能的......只能通過可以通過'mvn -PXXX1 ...'激活的配置文件... – khmarbaise
@peterh好的我會相應地更新我的答案,它可能是值得的 –