代码审核工具对比
FindBugs
-
介绍
-
基于字节码分析
-
侧重运行时错误检测
-
检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题
-
简单高效全面地帮助发现程序代码中存在的bug,以及潜在隐患
-
-
使用
-
可在IDE上下载插件使用
-
CheckStyle
-
介绍
-
基于源码分析
-
侧重语法风格
-
检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范
-
-
使用
-
可在IDE上下载插件使用
-
PMD
-
介绍
-
基于源码分析
-
通过静态分析获知代码错误,主要检查重复代码,比如直接copy的那些代码段
-
-
使用
-
可在IDE上下载插件使用
-
Sonar
-
介绍
-
市场上最受欢迎的代码质量和安全性分析工具
-
定位是代码质量平台,本身不进行代码分析,集成各静态工具分析;
-
比findbugs高了一个层级,多出了sonar不仅关注了常规静态bug,还关注到了如代码质量、包与包,类与类之间的依赖情况、代码耦合情况、类,方法。文件的复杂度、代码中是否包含大量复制粘贴的代码是质量低下的,关注到了项目代码整体的健康情况
-
-
使用
-
需按照部署
-
其他
-
Alibaba Java Coding Guidelines 插件
-
介绍
-
阿里下P3C项目 代码开发规约插件
-
-
使用
-
可在IDE上下载插件使用
-
-
总结
FindBugs、CheckStyle、PMD 各有侧重点,相对轻量级可以插件形式使用;
Sonar 可整合定制以上工具,平台化形式使用;
参考
https://www.jianshu.com/p/27dd601743d5
https://www.zhihu.com/question/19620900