Kos*_*tas 16 maven-2 maven-plugin
我想在我的插件中创建一个执行顺序,它包含一个maven插件,前后执行另一个maven插件.所有3次执行都是部署阶段的一部分.
这是我想要做的一个例子:
注意:url:get是我自己的custo mojo,只是使用commons httpClient执行http get.
我通常会在下一阶段附加after插件执行,但不幸的是deploy是jar生命周期的最后一个阶段.
先感谢您,
科斯塔斯
注意:我的pom文件中的以下插件段创建了以下不期望的执行顺序:
插件片段:
<plugin>
<groupId>com.blabla.stpadmin</groupId>
<artifactId>maven-url-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>stop-stpadmin-service</id>
<phase>deploy</phase>
<goals>
<goal>get</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>deploy</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.blabla.stpadmin</groupId>
<artifactId>maven-url-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>start-stpadmin-service</id>
<phase>deploy</phase>
<goals>
<goal>get</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
Ric*_*ler 11
您可以将每个插件的执行绑定到同一阶段,它们将按您指定的顺序执行.请注意,它们将在部署目标运行后执行,因此您可能希望将它们绑定到上一阶段(安装)
更新:为确保在依赖插件执行周围执行执行前和执行后目标,您需要确保它们在单独的插件中定义.否则,两个配置将合并并顺序执行.
如果需要在同一个插件中定义两个执行,则可以通过定义自定义生命周期并在通过执行注释执行Mojo之前调用该生命周期来完成此操作.在这个答案中,我描述了如何创建自定义生命周期并强制在运行插件之前调用它.如果配置执行后目标以调用依赖项插件,您将获得所需的执行顺序(您甚至可以在该生命周期中调用执行前的目标).
以下示例将在部署阶段按顺序执行三个插件:
<plugin>
<groupId>custom.url.plugin</groupId>
<artifactId>maven-url-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>execution-before</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>unpack</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>custom.url.plugin</groupId>
<!--specify final execution in a different plugin to
avoid the configurations being merged-->
<artifactId>maven-url-2-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>execution-after</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24070 次 |
| 最近记录: |