Maven 2 Maven多模块构建不遵守故障保护Maven插件?

Maven 2 Maven多模块构建不遵守故障保护Maven插件?,maven-2,surefire,maven-failsafe-plugin,Maven 2,Surefire,Maven Failsafe Plugin,我最近发现哈德逊不是问题所在。事实上,这是Maven本身,因为多模块构建导致构建失败,而不是Hudson。我只是没有注意到问题实际存在的地方 把原来的问题留在这里 我正在使用运行一些集成测试。failsafe和surefire之间的区别在于failsafe允许失败,并且不会使构建失败 在我的夜间构建中,有时集成测试使用的服务可能会关闭。在正常构建中,故障保护插件将允许构建继续,因为集成测试被允许失败。然而,哈德逊似乎不尊重这一点,并停止建设,并产生降雨 我尝试使用-DskipITs在夜间构建上

我最近发现哈德逊不是问题所在。事实上,这是Maven本身,因为多模块构建导致构建失败,而不是Hudson。我只是没有注意到问题实际存在的地方

把原来的问题留在这里


我正在使用运行一些集成测试。failsafe和surefire之间的区别在于failsafe允许失败,并且不会使构建失败

在我的夜间构建中,有时集成测试使用的服务可能会关闭。在正常构建中,故障保护插件将允许构建继续,因为集成测试被允许失败。然而,哈德逊似乎不尊重这一点,并停止建设,并产生降雨

我尝试使用-DskipITs在夜间构建上进行测试。这似乎失败了,因为我正在进行多模块构建

关于如何让Maven尊重这些测试可能失败的想法,即使它们是特定模块的一部分

项目结构如下:

-parent
\-jar
\-jar (where integration tests run)
\-war
\-ear

您可以使用概要文件为不同的环境(夜间构建、发布、普通开发人员构建等)创建稍微不同的构建


我还尝试更新Maven版本,最近很少有与多模块构建相关的修复。

您可以使用配置文件使构建在不同的环境中有所不同(夜间构建、发布、普通开发人员构建等等)


我也会尝试更新Maven版本,最近有一些与多模块构建相关的修复。

我不相信您最初关于failsafe Maven不会使构建失败的假设是正确的。失败的测试不会阻止集成测试阶段的完成,这与运行单元测试的surefire插件不同。这允许运行集成后测试阶段,因此可以拆除测试环境(应用程序服务器关闭等)


在此之后,将运行验证阶段,该阶段将查看集成测试的结果。如果这些测试中有一个失败了,那么Maven将返回一个构建失败,Hudson将正确地选择它,以便将您的构建标记为已损坏。

我不相信您最初关于failsafe Maven不会使构建失败的假设是正确的。失败的测试不会阻止集成测试阶段的完成,这与运行单元测试的surefire插件不同。这允许运行集成后测试阶段,因此可以拆除测试环境(应用程序服务器关闭等)


在此之后,将运行验证阶段,该阶段将查看集成测试的结果。如果其中一个测试失败,那么Maven将返回构建失败,哪一个Hudson将正确地拾取,以便将您的构建标记为已损坏。

使用a打开/关闭maven故障保护插件的功能。

使用a打开/关闭maven故障保护插件的功能。

这些集成测试是在特定目录中还是在专用模块中(这不是我所理解的)?若否,原因为何?你能告诉我们更多关于多模块结构的信息吗?每晚构建的目标是什么?验证目标是什么?我实际上每晚都在顶级父级pom上运行install。这些集成测试是在特定目录中还是在专用模块中进行的(这不是我所理解的)?若否,原因为何?你能告诉我们更多关于多模块结构的信息吗?每晚构建的目标是什么,验证目标是什么?我实际上每晚都在顶级父级pom上运行install。