目前我有一个项目,我们称之为mightymouse
。 Mightymouse POM是mightymouse-web
和mightmouse-backend
的多模块项目。
两个子模块都有测试。在我的情况下,mightymouse-web
项目首先编译,测试,打包,安装和部署。然后-backend
项目通过,但在integration-test
阶段失败。 (然而,它仍然会进入deploy
阶段。)
Jenkins作业设置为执行mvn clean deploy
。
问题:无论如何都要阻止Maven在任何未通过测试的模块上一直走到deploy
步骤?
答案 0 :(得分:1)
默认情况下,maven多模块版本也使用fail-fast
option
<?php $validkey = "Test" ?> <script type="text/javascript"> function check_value() { var password = document.getElementById("password").value; if (password == '<?php echo $validkey; ?>') { location.href = "tafels.html"; } } </script> <input type ="text" name="password" id="password" /> <button onclick="check_value();">Login</button>
- 默认行为 - 每当模块构建失败时,立即停止整体构建
此外,默认情况下,只要集成测试通过maven-failsafe-plugin
选项失败,testFailureIgnore
就会失败
将此设置为
--fail-fast
以忽略测试期间的失败。它的使用不推荐,但偶尔也很方便。
用户属性:true
默认:maven.test.failure.ignore
请注意,maven-surefire-plugin
有the same单元测试。
因此,默认情况下,一旦测试失败(单元测试或集成测试),多模块构建就应该停止,不会构建更多的模块,也不应该调用进一步的maven阶段。
然而,默认情况下Maven Jenkins的工作(而不是调用Maven的自由式Jenkins工作)set this option到false
,因此构建不会失败,它将继续并部署,同时工作将设置为true
而不是UNSTABLE
(但仍在部署中)。
因此,您可以将Jenkins作业中的maven调用更改为:
SUCCESSFUL
覆盖Jenkins默认设置并满足您的要求。