我正在为FindBugs plugin玩精彩的Hudson。理想情况下,如果FindBugs发现任何问题,我希望构建失败。这可能吗?
请不要试着告诉我,“0警告”对FindBugs来说是不现实的。我们一直在使用Ant的FindBugs,我们通常会保持0警告。我们通过使用常规排除过滤器和特定/目标注释来实现这一目标。
答案 0 :(得分:4)
哈德森的方式是使用不稳定而不是失败的类似的东西。 但是,如果你确实希望你的构建失败,你应该在ant中处理它。
<findbugs ... warningsProperty="findbugsFailure"/>
<fail if="findbugsFailure">
答案 1 :(得分:3)
也许您已经看过这个选项,但是当您有超过X个警告时,它至少可以将您的构建设置为不稳定。在作业配置页面上,在指定findbugs文件模式的Findbugs结果输入字段的正下方,应该是一个“高级”按钮。这将扩展并为您提供“不稳定阈值”以及健康报告,根据警告的数量更改Hudson的工作天气指示。
我不希望我的构建失败,但是如果你保持0警告(并且可能是0次测试失败),那么unstable似乎是合理的。
答案 2 :(得分:1)
正如Tom所说,提供的方法是使用FindBugs ant任务的warningsProperty。
但是,我们不喜欢粗略控制让我们过度构建失败。因此,我们编写了一个自定义Ant任务,用于解析FindBugs的XML输出。如果找到任何高优先级警告,它将设置一个Ant属性,如果找到任何正确性警告,则设置不同属性,如果找到任何安全警告,则设置第三个属性,等等。这使得我们无法构建FindBugs警告的目标子集,同时仍然生成涵盖更广泛问题的HTML报告。在将FindBugs分析添加到现有代码库时,这尤其有用。
答案 3 :(得分:0)
你不能非常依赖查找错误,它只是一个专家系统,告诉你在运行时你的程序可能错误。我个人看到findbugs产生了很多警告,因为它无法弄清楚代码的正确性(事实上)。
在一个方法中打开流或jdbc连接并在其他方法中关闭它的一个示例,在这种情况下,findbugs期望在相同的方法中看到close()调用,这有时是不可能的。