http://findbugs.cs.umd.edu/eclipse update site for official releases
findbugs原理:
利用了byte code engineering library 来实现其检测器,所所有字节码扫描检测器都基于Visitor模式。当FindBugs在分析类时,他会在分析方法内容时调用visit(Code)方法,与此累死,findbugs在分析方法正文中的每一个操作码时条用sawOpcode(int)方法。通过对内容和操作码与Bug的特征码进行比对,来检测bug,可以说,findbugs的工作方式很想杀毒软件。
FindBugs包含一下配置
1."Run FindBugs automatically" 选中,当代码被修改时,findBugs会自动检查被修改的代码
2."Detector configuration" 用于配置对那些bug类型进行检查
3."Report configuration"用于配置bug报告,包括bug的级别和bug的分类检查
4."Filter files"用于对bug报告进行过滤
- include filter files:配置那些包,那些类,那些方法,那些bug类型等信息出现在bug报告里
- exclude filter file:配置那些包,那些类,那些方法,那些bug类型等信息从bug报告中去除
- exclude baseline bugs:过滤掉基线bug
自定义filter:
代码静态分析工具的一个问题是他们容易为开发人员指出大量但并非真正问题的问题——伪问题。通过定义filter文件,我们可以将伪问题过滤掉
一个简单的例子:
<FindBugsFilter>
<Match>
<Class name = "Sample"/>
</Match>
</FindBugsFilter>