如何在 exec-maven-plugin:exec 失败时执行清理脚本?

How to execute a cleanup script on exec-maven-plugin:exec failure?

我目前正在使用maven插件exec-maven-plugin执行一个脚本,这个脚本会启动几个java程序对应一个integration test,如果测试通过,则一切停止由稍后在构建中执行的 cleanup script 正确执行。

我的问题是测试失败,因为当插件 exec-maven-plugin 失败时它会立即停止构建,这样我的 cleanup script 永远不会被调用,这意味着我的 java 程序永远不会停止了。

那么有没有办法在我的 integration test 失败的情况下执行我的 cleanup script

到目前为止,我将 1 作为 successCode 添加到我的集成测试中,以确保我的 cleanup script 被调用,但它不够好,因为看到构建有一个构建事实并非如此。

有什么想法吗?

这是我最后做的:

  1. 我将 1 作为 success code 添加到我的 integration test 以确保始终调用 cleanup script
  2. 我将 属性 outputFile 定义到我的 integration test 以便将标准输出流重定向到一个文件以供稍后测试
  3. cleanup script 之后,我使用 cat {my-file} | grep {my-pattern} >/dev/null 类型的命令检查在步骤 #2 中创建的文件中的给定模式,以便了解 integration test 是否通过,如果找不到pattern,会导致构建失败,否则构建会通过