Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何确保在预集成测试失败后进行清理?_Maven_Integration Testing_Jenkins_Exec Maven Plugin_Maven Failsafe Plugin - Fatal编程技术网

Maven 如何确保在预集成测试失败后进行清理?

Maven 如何确保在预集成测试失败后进行清理?,maven,integration-testing,jenkins,exec-maven-plugin,maven-failsafe-plugin,Maven,Integration Testing,Jenkins,Exec Maven Plugin,Maven Failsafe Plugin,我试图在maven(v2)中设置集成测试,通过Jenkins执行。在maven POM的预集成测试阶段,我提出了一个大型软件堆栈(通过exec maven插件)。不幸的是,这种方法有时会失败(显然我需要更多的测试),这会立即导致构建失败。问题是,在发生故障后,堆栈不是完全向上,也不是完全向下。我可以通过另一个调用execmaven插件进行清理,但是maven构建立即结束,所以我没有机会 我依靠maven failsafe插件来确保在任何测试失败时进行清理,但是当预集成测试失败时,我如何清理呢?顺

我试图在maven(v2)中设置集成测试,通过Jenkins执行。在maven POM的预集成测试阶段,我提出了一个大型软件堆栈(通过exec maven插件)。不幸的是,这种方法有时会失败(显然我需要更多的测试),这会立即导致构建失败。问题是,在发生故障后,堆栈不是完全向上,也不是完全向下。我可以通过另一个调用execmaven插件进行清理,但是maven构建立即结束,所以我没有机会


我依靠maven failsafe插件来确保在任何测试失败时进行清理,但是当预集成测试失败时,我如何清理呢?

顺便说一句,现在我正在初始化阶段运行额外的清理,以防止后续构建在同一系统上失败。然而,依靠这一点似乎是不正确的,或者至少是低效的。如果在这里触发另一个构建而不是同一个构建呢?以前版本中部分运行的堆栈可能会导致问题。为什么不直接调用clean,确保在运行新安装之前清除每个版本(无论是否失败)。这是我在第一条评论中提到的操作,但是如果在此之后在那里构建了不同的模块呢?我真的需要在每个其他可能的构建中吸收在这个构建之后清理所需的依赖项,仅仅因为我不能在这里清理自己吗?如果正在构建的新模块属于不同的组/部门,该怎么办?好的,你可以这样做,顺便说一句,我仍然不明白为什么我的建议是一个问题。但是你可以在bash脚本中运行所有这些,如果在任何一点上的返回值都是非零,那么就运行干净。如果不是,请保持冷静并继续。@dustyprogrammer:真的吗?bash脚本?如果我不得不重新编写bash脚本,那么maven会让我失望得很(有没有平台独立性?)。我想至少你会建议使用antrun作业,这样我就不需要依靠bash脚本在Windows机器上运行(是的,我知道Cygwin,不,我不希望我的构建依赖于它),也不需要维护单独的Linux和Windows脚本。顺便说一下,目前,我正在初始化阶段运行额外的清理,以防止后续构建在同一系统上失败。然而,依靠这一点似乎是不正确的,或者至少是低效的。如果在这里触发另一个构建而不是同一个构建呢?以前版本中部分运行的堆栈可能会导致问题。为什么不直接调用clean,确保在运行新安装之前清除每个版本(无论是否失败)。这是我在第一条评论中提到的操作,但是如果在此之后在那里构建了不同的模块呢?我真的需要在每个其他可能的构建中吸收在这个构建之后清理所需的依赖项,仅仅因为我不能在这里清理自己吗?如果正在构建的新模块属于不同的组/部门,该怎么办?好的,你可以这样做,顺便说一句,我仍然不明白为什么我的建议是一个问题。但是你可以在bash脚本中运行所有这些,如果在任何一点上的返回值都是非零,那么就运行干净。如果不是,请保持冷静并继续。@dustyprogrammer:真的吗?bash脚本?如果我不得不重新编写bash脚本,那么maven会让我失望得很(有没有平台独立性?)。我想至少你会建议使用antrun作业,这样我就不需要依赖bash脚本在Windows机器上运行(是的,我知道Cygwin,不,我不希望我的构建依赖于它),也不需要维护单独的Linux和Windows脚本。