Java maven插件的执行顺序
据说: 自Maven 3.0.3以来,对于绑定到同一阶段的两个插件,顺序 执行的顺序与定义它们的顺序相同 我正在使用Maven3.3.9,我可以看到执行顺序并不总是由POM中插件的顺序定义的 我将以下插件绑定到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
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)”-永远不会运行
问题:为什么绑定到同一阶段的插件没有按照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?