zoukankan      html  css  js  c++  java
  • 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下使用)解压后运行binfindbugs.bat,即可看到如下界面:

    可以通过“文件”->"新建":

    分别选择“要分析的类包和目录”、”辅助类的位置“、“源文件目录”,然后“Analyze”:

    我们更常用的方式是使用它的eclipse插件,因为这种方式手动选择类和源文件以及辅助类,都是比较麻烦的事。

    在eclipse使用findbugs插件

    可以使用下面的地址安装findbugs插件:

    1. http://findbugs.cs.umd.edu/eclipse/ Only provides official releases of FindBugs.
    2. http://findbugs.cs.umd.edu/eclipse-candidate/ Provides official releases and release candidates of FindBugs.
    3. 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打开以便可视化分析。

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    tcpip协议
    Linux特殊文件使用原理
    shell之常用内置变量
    SSM框架CRUD小案例
    个人博客开发笔记
    蓝天筹项目开发记录
    二叉平衡树AVL的插入与删除(java实现)
    二叉搜索树(java实现)
    树的基本操作
    SQL连接
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4620442.html
Copyright © 2011-2022 走看看