我想在现有项目上启动findBugs(在命令行上目前有522个错误)。
如果发现超过522个错误,我如何在ant文件中设置(在findbugs目标下)选项以使构建失败?
我想实际上使ant构建失败,而不是从输出报告中手动删除它。
感谢。
答案 0 :(得分:2)
这可能有点太过分了,但我正在添加它作为答案。
您可以使用sonar。 Sonar是一个测量和跟踪代码质量的免费平台。它包含了findbugs指标。
它有Build Breaker Plugin,会在某些条件下破坏你的构建。
答案 1 :(得分:1)
这可能是不可能的。您可以使用数据挖掘任务并进行一些特殊处理。 http://findbugs.sourceforge.net/manual/datamining.html
答案 2 :(得分:1)
You need to write a custom ant task,派生自Ant的Task
基类,它添加了一个日志侦听器,用于设置属性并在之后自行删除。自定义任务将获取当前Project
and add the log listener via addLogListener(...)。
日志侦听器需要识别findBugs何时记录,识别哪条日志消息是列出错误数量的日志消息,解析该行,设置属性并将其自身从日志侦听器集中删除。
完成该任务后,you need to also write a new condition,因为Ant未附带数字比较条件。然后,您可以在失败任务中使用自定义条件,就像任何其他条件一样。
<findBugCountListener prefix="findbugs.count"/>
<findBugs ...>
</findBugs>
<fail>
<condition property="allupper">
<and>
<isset property="findbugs.count"/>
<greaterThan value="${findbugs.count}" limit="522"/>
</and>
</condition>
</fail>
理想情况下,您的侦听器将设置一个具有错误数量的Ant属性。然后,如果错误数量太高,您可以使用AntContrib的Assert任务抛出构建异常。
是的,它比简单地配置一些标签更加手动,但至少可以使用Ant,因为它能够加载自定义扩展。它不像Ant是用findBugs插件的明确知识编写的(后来自然必须写)。
另一种方法是找到findBugs ANT插件的源代码,并假设它具有允许合法修改的许可证,修改ANT插件以获得新的“附加”属性setCount="propName"
,然后捕获并在现有的findBugs ANT插件中设置属性。
答案 3 :(得分:0)
相当古老的问题,但也许这对其他人有用:是通过设置warningsProperty
的{{1}}属性来实现所需行为的一种相当简单的方法}任务和之后让findbugs
检查属性的值:
fail
(不用说现在已经放弃了findbugs,但有spotbugs作为继任者。)