Java代码审查工具findbugs的使用总结
findbugs简介
Findbugs是一个Java代码静态分析工具,可以用它来检查源代码中可能出现的问题,以期尽可能在项目的初始阶段将代码问题解决。
FindBugs检查的是类或者JAR文件即字节代码(*.class),将字节码与一组缺陷模式进行对比以发现可能的问题;许多我们写的不好的可以优化的地方,它都能检查出来并给建议,比如未关闭的数据库连接、缺少必要的null check、多余的 null check、多余的if后置条件、重复的代码块、错误的使用了"==",建议使用StringBuffer代替字符串连加等等。而且我们还可以自己配置检查规则,也可以自己来实现findbugs的接口,以便独有的校验规则。
下载findbugs
点击这里到最新版本的findbugs下载页面,我下载的是"findbugs-3.0.0-rc1.tar.gz",(windows下使用)解压后运行bin\findbugs.bat,即可看到如下界面:
可以通过“文件”->"新建":
分别选择“要分析的类包和目录”、”辅助类的位置“、“源文件目录”,然后“Analyze”:
我们更常用的方式是使用它的eclipse插件,因为这种方式手动选择类和源文件以及辅助类,都是比较麻烦的事。
在eclipse使用findbugs插件
可以使用下面的地址安装findbugs插件:
- http://findbugs.cs.umd.edu/eclipse/ Only provides official releases of FindBugs.
- http://findbugs.cs.umd.edu/eclipse-candidate/ Provides official releases and release candidates of FindBugs.
- http://findbugs.cs.umd.edu/eclipse-daily/ Provides the daily build of FindBugs. No testing other than that it compiles.
你也可以手动下载插件: http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_2.0.3.20131122.zip?download.
安装后需要设置一下,否则你在"Bug Explorer"中看不到bugs:
然后在项目上右键:
执行后,需要打开“Bug Explorer”:Windows -> Show View -> Other :
即可看到如下图:
PS:一定要设置下一下,我之前没设置在Bug Explorer中死活不显示找到的Bug!!
上一步的设置是findbugs的全局设置,也可以对项目单独设置:项目上右键 -> Properties :
maven的findbugs插件
使用findbugs的maven插件也非常方便,需要为pom.xml的project添加如下子节点:
<reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>2.5.2</version> </plugin> </plugins> </reporting>
maven命令:
mvn findbugs:findbugs
结果显示:
此时会在target目录会生成文件:findbugsXml.xml,可以用findbugs打开以便可视化分析。