Java maven插件的执行顺序

Java maven插件的执行顺序,java,maven,maven-3,maven-failsafe-plugin,Java,Maven,Maven 3,Maven Failsafe Plugin,据说: 自Maven 3.0.3以来,对于绑定到同一阶段的两个插件,顺序 执行的顺序与定义它们的顺序相同 我正在使用Maven3.3.9,我可以看到执行顺序并不总是由POM中插件的顺序定义的 我将以下插件绑定到Maven生命周期阶段: pre-integration-test: maven-resources-plugin, 3.0.1 - prepares certain files integration-test: maven-failsafe-plugi

据说:

自Maven 3.0.3以来,对于绑定到同一阶段的两个插件,顺序 执行的顺序与定义它们的顺序相同

我正在使用Maven3.3.9,我可以看到执行顺序并不总是由POM中插件的顺序定义的

我将以下插件绑定到Maven生命周期阶段:

pre-integration-test:  maven-resources-plugin, 3.0.1            - prepares certain files
integration-test:      maven-failsafe-plugin, 2.19.1            - runs Cucumber-jvm tests
post-integration-test: exec-maven-plugin (id: cleaner), 1.5.0   - stops certain processes
                       maven-cucumber-reporting, 2.4.0          - generates rich HTML report
                       exec-maven-plugin (id: converter), 1.5.0 - converts rich HTML report to a light version
绑定到“后集成测试”阶段的三个插件按它们在POM中定义的顺序列出。 如果所有测试都顺利通过(在“集成测试”阶段),这些插件将按预期的顺序执行:按照POM中定义的顺序执行。 但是如果任何测试失败-那么我会得到以下情况:

  • 第三个插件首先运行——“execmaven插件(id:converter)”。信息技术 找不到要转换的“富HTML报告”,因此失败
  • 之后,第二个插件运行——“maven Cumber reporting”。成功地 生成“富HTML报告”
  • 第一个插件--“execmaven插件(id:cleaner)”-永远不会运行
还有一件奇怪的事:虽然“maven Cumber reporting”插件成功生成了丰富的HTML报告,但我在日志文件中看到了以下内容:“未能执行目标maven Cumber reporting:2.4.0:generate(execution)on project…:发现错误:构建失败”

如果我在POM中注释掉第二个和第三个插件,那么剩余的插件(“exec maven plugin(id:cleaner)”)将成功运行。在本例中,我在日志文件中看到以下内容:“未能在项目上执行goal maven failsafe插件:2.19.1:验证(默认)…:存在测试失败”。好吧,这条消息是意料之中的


问题:为什么绑定到同一阶段的插件没有按照POM中定义的顺序执行(但只有在前一阶段失败时才执行)?

我自己找到了答案。对同一个插件(execmaven插件)有两个定义只是问题的一部分:它解释了错误的执行顺序,但没有解释为什么cleaner永远不会运行。后一个问题有如下解释:maven cucumber reporting插件的代码阻止了maven生命周期的所有后续阶段的执行,如果构建之前失败了。幸运的是,可以在参数中禁用此代码-有关详细信息,请参阅。

您能否共享releavent
pom.xml
部分?这可能与。关于“这些插件按预期执行”,你确定吗?这部分大约有6000个符号-对于这个评论来说太长了。此处不允许使用和附件。是的,当所有测试无误通过时-这些插件按预期的顺序执行:按照POM中定义的顺序。请将
POM.xml
的相关部分添加到问题中(通过
编辑
),而不是在注释中我阅读了链接。他们说我们不能在同一个POM中两次定义同一个插件。所以我改变了绑定:集成前测试:maven resources plugin,3.0.1-准备某些文件集成测试:maven failsafe plugin,2.19.1-运行jvm测试集成后测试:exec maven plugin(id:cleaner),1.5.0-停止某些进程maven cucumber报告,2.4.0-生成丰富的HTML报告验证:exec maven插件(id:converter),1.5.0-将富HTML报告转换为轻版本您可以在不同阶段执行同一插件的两次…这取决于您如何调用Maven?