两个具有相同执行阶段的Maven插件

时间:2019-02-23 14:57:28

标签: java maven gauge

如果其中一个失败,是否可以执行两个maven插件的相同生命周期?

示例:

假设我具有以下插件配置,

<plugins>
  <plugin>
    <groupId>smothing</groupId>
    <artifactId>plugin-1</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
        <id>doSomthing</id>
        <phase>test</phase>
        //...//
  </plugin>

  <plugin>
    <groupId>something</groupId>
    <artifactId>plugin-2</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
        <id>doSomthingAgain</id>
        <phase>test</phase>
        //...
  </plugin>
</plugins>

即使第一个插件失败,我仍要执行 plugin-2 测试阶段。我不想忽略或跳过测试用例。

即使有一个失败,我也有下面两个要在同一个阶段执行的插件。

<groupId>com.thoughtworks.gauge.maven</groupId>
<artifactId>gauge-maven-plugin</artifactId>

<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>

基本上,在量规测试之后,我想通过maven exec插件执行一些清理活动。那么,有什么选择可以让我始终执行maven exec插件吗? (没有命令行参数,这在pom.xml中是我期望的)

我已经看到了这些答案,但是所有内容都表明可以跳过测试用例。

How to run a maven goal when there is tests failures?

Maven reporting plugins do not execute if a unit test failure occurs

任何帮助,不胜感激:)

1 个答案:

答案 0 :(得分:1)

如果插件失败,它将停止生命周期的执行。因此,您不应该通过考虑在某种情况下执行另一个插件来尝试解决该问题。 根据您的描述,最好的方法似乎是编写扩展,请参见https://maven.apache.org/examples/maven-3-lifecycle-extensions.html。使用https://maven.apache.org/ref/3.6.0/maven-core/apidocs/index.html?org/apache/maven/execution/AbstractExecutionListener.html,您可以看到可以在生命周期的任何阶段之前或之后执行操作,例如在projectSucceeded + projectFailed后清理