如何根据单个Findbugs探测器的结果使构建失败?

时间:2010-11-19 14:31:04

标签: java ant build-process findbugs

如果您使用Findbugs进行编译代码检查,是否可能根据单个检测器或检测器类别的结果使构建失败?

例如,我想确保我没有任何优先级的任何与空指针相关的检测(this list中的“NP”的前缀)。同样,我们真的不希望有任何wait not in loop情况。也就是说,我不一定希望在基于国际化检测的构建中失败,因为这些对我们的应用程序并不是立即关键。

期望的最终状态将是我们可以针对从IDE级别(Eclipse和Netbeans)到发布级别(使用CruiseControl生成构建)的各种开发阶段进行调整的过程。

注意:我知道Eclipse和Netbeans都内置了类似的检测方法,但这是一个特定于FindBugs的问题。

1 个答案:

答案 0 :(得分:2)

来自FindBugs Using the Ant Task section

  

includeFilter

     

可选属性。它指定过滤器的文件名,指定报告哪些错误。请参阅Chapter 8, Filter Files

从第8章开始:

  

但是,也可以使用过滤器来选择bug实例来专门报告:

     

$ findbugs -textui -include myIncludeFilter.xml myApp.jar

  
      
  1. 通过指定缩写来匹配所有类的某些测试。
  2.   
 <Match>
     <Bug code="DE,UrF,SIC" />
 </Match></pre>

所以我会假设一些事情:

<Match>
    <Bug code="Wa,NP" />
</Match>

在您的包含过滤器和

<findbugs includeFilter="path/to/includefilter.xml"...

将是您正在寻找的。

path/to /includeFilter(或excludeFilter)可以是根据另一个属性的值设置的属性,对于常规构建,dev可能默认为test deploy用于CI构建,{{1}}用于部署构建,并指定您希望在每个阶段看到或不希望看到的特定警告。

希望有所帮助。