Eclipse下使用findbugs进行代码审查

系统 1440 0

1 FindBugs 介绍

FindBugs 是一款 Java 静态代码分析工具,与其他静态分析工具(如 Checkstyle PMD )不同, FindBugs  不注重样式或者格式,它专注于寻找真正的缺陷或者潜在的性能问题 , 它可以帮助 java 工程师提高代码质量以及排除隐含的缺陷。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。

最新版本是 1.3.9.20090821 ,下载地址 http://findbugs.sourceforge.net/downloads.html

FindBugs 运用 Apache BCEL  库分析类文件( class 文件)而不是源代码,将字节码与一组缺陷模式进行对比以发现可能的问题。 FindBugs 的检测器已增至 300 多条,被分为不同的类型,常见的类型如下:

·  正确性( Correctness ):这种归类下的问题在某种情况下会导致 bug ,比如错误的强制类型转换等。

·  最佳实践反例( Bad practice ):这种类别下的代码违反了公认的最佳实践标准,比如某个类实现了 equals 方法但未实现 hashCode 方法等。

·  多线程正确性( Multithreaded correctness ):关注于同步和多线程问题。

·  性能( Performance ):潜在的性能问题。

·  安全( Security ):安全相关。

·  高危( Dodgy ): FindBugs 团队认为该类型下的问题代码导致 bug 的可能性很高。

 

2、 Eclipse 中安装 FindBugs 插件

    下载 Eclipse plugin  的版本, 解压 zip 文件。

   将解压后的文件放到 Eclipse Plugin 中。

   重新启动 Eclipse 

 

    我使用的是 MyEclipse8.5 可能路径和大家的不太一样,我是放到了路径 Genuitec/MyEclipse 8.5/dropins 下面

 

Eclipse下使用findbugs进行代码审查

 

3、 Eclipse 中使用 FindBugs

重新启动 eclipse

打开 FindBugs 视图

 

Eclipse下使用findbugs进行代码审查

Eclipse下使用findbugs进行代码审查

Eclipse下使用findbugs进行代码审查

 

执行 Find Bug  任务

右键单击你要检测的工程、包或文件, -->Find Bugs-->Find Bugs

Eclipse下使用findbugs进行代码审查

check 完成后将在 Bug Explorer 视图中看到问题列表,该列表以问题类型组织。

 

 

Eclipse下使用findbugs进行代码审查

 

展开列表,双击列表中具体的问题就可以定位的具体的代码行。

 

Eclipse下使用findbugs进行代码审查

 

 

 

4 配置 FindBugs
这里 可以对 FindBugs 规则等进行详细设置。 
  选择你的项目,右键  => Properties => FindBugs =>

 

  Eclipse下使用findbugs进行代码审查

Run Automatically 开关

当此项选中后, FindBugs 将会在你修改 Java 类时自动运行,如你设置了 Eclipse 自动编译开关后,当你修改完 Java 文件保存, FindBugs 就会运行,并将相应的信息显示出来。
当此项没有选中,你只能每次在需要的时候自己去运行 FindBugs 来检查你的代码。

Detector  Configuration 选择项

在这里你可以选择所要进行检查的相关的 Bug Pattern 条目 , 你可以根据需要选择或去掉相应的 检查条件。

 

Eclipse下使用findbugs进行代码审查

Minimum priority to report 选择项
这个选择项是让你选择哪个级别的信息进行显示,有 Low Medium High 三个选择项可以选择,很类似于 Log4J 的级别设置啦。 比如:


你选择了 High 选择项,那么只有是 High 级别的提示信息才会被显示。
你选择了 Medium 选择项,那么只有是 Medium High 级别的提示信息才会被显示。
你选择了 Low 选择项,那么所有级别的提示信息都会被显示。

Report  bug categories 选择项
在这里是一些显示 Bug 分类的选择:
Malicious code vulnerability 关于恶意破坏代码相关方面的
Correctness 关于代码正确性相关方面的
Internationalization 关于代码国际化相关方面的
Performance 关于代码性能相关方面的
Multithreaded correctness 关于代码多线程正确性相关方面的

另外 FindBugs UI 页面,可以单独运行。也可以通过 Ant 以及命令行方式运行。

Eclipse下使用findbugs进行代码审查


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论