Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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项目中存在测试失败,则Jenkins构建失败_Maven_Jenkins_Multi Module - Fatal编程技术网

如果多模块Maven项目中存在测试失败,则Jenkins构建失败

如果多模块Maven项目中存在测试失败,则Jenkins构建失败,maven,jenkins,multi-module,Maven,Jenkins,Multi Module,现在我有一个项目,我们把它叫做mightymouse。Mightymouse POM是一个多模块项目,用于Mightymouse web和MighMouse后端 两个子模块都进行了测试。在我的情况下,可能会使用web项目首先编译、测试、打包、安装和部署。然后,-后端项目通过,但在集成测试阶段失败。(然而,它仍然要经过deploy阶段) Jenkins作业设置为执行mvn clean deploy 问题:是否有任何方法可以防止Maven在测试失败的模块上执行部署步骤?默认情况下,Maven多模块构

现在我有一个项目,我们把它叫做
mightymouse
。Mightymouse POM是一个多模块项目,用于
Mightymouse web
MighMouse后端

两个子模块都进行了测试。在我的情况下,
可能会使用web
项目首先编译、测试、打包、安装和部署。然后,
-后端
项目通过,但在
集成测试
阶段失败。(然而,它仍然要经过
deploy
阶段)

Jenkins作业设置为执行
mvn clean deploy


问题:是否有任何方法可以防止Maven在测试失败的模块上执行部署步骤?

默认情况下,Maven多模块构建也使用

——快速失败
——默认行为——每当模块构建失败时,立即停止整个构建

此外,默认情况下,只要集成测试通过该选项失败,就已经失败了

将其设置为
true
以忽略测试期间的故障。不推荐使用,但有时使用非常方便。
用户属性
maven.test.failure.ignore

默认值
错误

注意,对于单元测试,该方法是有效的

因此,默认情况下,一旦测试失败(单元测试或集成测试),多模块构建就应该停止,不再构建更多的模块,也不再调用更多的maven阶段

但是,默认情况下,Maven-Jenkins作业(而不是调用Maven的freestyle-Jenkins作业)设置为
true
,因此构建不会失败,它将继续并部署,而作业将设置为
不稳定
,而
不成功
(但仍在部署)

因此,您可以将Jenkins作业中的maven调用更改为:

mvn clean deploy -Dmaven.test.failure.ignore=false

覆盖默认设置并满足您的要求。

您在聚合器上运行
mvn clean deploy
,对吗?如果是这样,我想知道为什么
web
是首先构建的?
web
是否使用来自
后端的依赖项?我们可以看到POM和构建输出的一些相关部分吗?这只是一个例子,比如说后端依赖于web。这是否意味着这不是一个真正的问题?一个以防万一的问题。。。?