Continuous integration Hudson FindBugs插件:如果出现任何问题,如何使作业失败?

Continuous integration Hudson FindBugs插件:如果出现任何问题,如何使作业失败?,continuous-integration,hudson,Continuous Integration,Hudson,我正在为你玩精彩的游戏。理想情况下,如果FindBugs发现任何问题,我希望构建失败。这可能吗 请不要试图告诉我FindBugs的“0警告”是不现实的。我们使用Ant的FindBugs已经有一段时间了,我们通常维护0个警告。我们通过使用通用排除过滤器和特定/有针对性的注释来实现这一点。您不能太依赖于查找bug,它只是一个专家系统,告诉您运行时程序可能有问题。就我个人而言,我看到findbugs生成了很多警告,因为它无法判断代码的正确性(事实上) 例如,当您在一个方法中打开一个流或jdbc连接,在

我正在为你玩精彩的游戏。理想情况下,如果FindBugs发现任何问题,我希望构建失败。这可能吗


请不要试图告诉我FindBugs的“0警告”是不现实的。我们使用Ant的FindBugs已经有一段时间了,我们通常维护0个警告。我们通过使用通用排除过滤器和特定/有针对性的注释来实现这一点。

您不能太依赖于查找bug,它只是一个专家系统,告诉您运行时程序可能有问题。就我个人而言,我看到findbugs生成了很多警告,因为它无法判断代码的正确性(事实上)


例如,当您在一个方法中打开一个流或jdbc连接,在另一个方法中关闭它时,findbugs希望在同一个方法中看到close()调用,这有时是不可能做到的。

也许您已经看到了这个选项,但当出现大于X的警告时,它至少可以将构建设置为不稳定。在作业配置页面上,在Findbugs结果输入字段的正下方,指定Findbugs文件模式,应该有一个“高级”按钮。这将扩展并为您提供“不稳定阈值”以及健康报告,根据警告数量更改哈德逊的天气指示器


我不希望我的构建失败,但是如果您维护0个警告(大概0个测试失败),那么不稳定似乎是合理的。

hudson的方法是使用不稳定和不失败来实现类似的功能。 然而,如果你真的希望你的构建失败,你应该在ant中处理这个问题


正如Tom所指出的,提供的方法是使用FindBugs ant任务的WarningProperty

然而,我们不喜欢导致过度构建失败的粗糙控制。因此,我们编写了一个自定义Ant任务来解析FindBugs的XML输出。如果发现任何高优先级警告,它将设置一个Ant属性,如果发现任何正确性警告,它将设置另一个属性,如果发现任何安全警告,它将设置第三个属性,等等。这使我们无法生成FindBugs警告的目标子集,同时仍然生成涵盖更广泛问题的HTML报告。这在将FindBugs分析添加到现有代码库时特别有用