静态代码检查工具简介
在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码复审、同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题。
下面简要介绍几款可用于Java静态代码分析的工具。介绍的顺序与工具所占市场份额无关。
1 阿里巴巴Java开发代码检测IDE插件
2017年10月,阿里推出了《阿里巴巴Java开发手册(终极版)》,并在持续更新中。该开发手册以Java开发者为中心视角,从编程规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六个维度,分别给出了相应的开发要求。相应地,阿里在10月份的杭州云栖大会上正式发布了Java代码检测IDE插件(支持与Eclipse、MyEclipse等工具的集成),供大家免费下载使用。个人感觉,阿里的插件对于MyEclipse的支持不够友好,需要倒腾很久,不过最终还是成功了。
2 FindBugs
官网地址:http://findbugs.sourceforge.net/。
FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse/MyEclipse 插件使用。Findbugs规则比较简单实用,不注重样式与格式,属于轻量级的工具。
个人感觉,FingBugs对于MyEclipse的支持也不够友好,倒腾了很久,试验了很多方法,但在MyEclipse中还是未能安装成功,只能通过命令行模式来运行,极其不爽。虽然这个工具目前在业界的使用范围很广,从csdn在2016年所做的调查问卷来看,FindBugs的使用占比57%,但是,还是觉得现实很不美好。
3 Checkstyle
官网地址:http://checkstyle.sourceforge.net/
Checkstyle 是 SourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。Checkstyle 提供了支持大多数常见 IDE 的插件,例如Eclipse。Checkstyle 对代码进行编码风格检查,并将检查结果显示在 Problems 视图中,开发人员可通过在 Problems 视图中查看错误或警告详细信息。有关Checkstyle的使用可阅读:代码规范工具-Checkstyle使用手册。
4 PMD
官网地址:https://pmd.github.io/。
PMD 是由 DARPA 在 SourceForge 上发布的开源 Java 代码静态分析工具。通过其内置的编码规则对 Java 代码进行静态检查,主要包括对潜在的 bug,未使用的代码,重复的代码,循环体创建新对象等问题的检验。PMD 提供了和多种 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。
5 Sonar
Sonar是一个代码质量管理开放平台,能对不同规模和种类的工程进行代码质量管理,可以集成不同类型的工具一起工作。Sonar主要用于代码质量管理。该工具目前在业界的使用范围很广,从csdn在2016年所做的调查问卷来看,Sonar的使用占比41%。有关Sonar的使用可阅读:使用Sonar进行代码质量管理。
6 CodeAnalyzer
官网:http://www.spasvo.com/Products/CodeAnalyzer.asp
CodeAnalyzer简称CA,是上海泽众软件有限公司自主研发的代码审查工具,用于实现静态分析、代码走查、代码规范检查以及代码潜在错误分析。该工具并非开源,不过,可以在官网填写基本信息后申请获取试用版。
7 其他
Java静态代码分析工具不止上述这些,要了解更多资料可阅读如下文章。