现在很多开源工具都可以对代码进行规范审核,比较流行的有以下几款,大致给个简单介绍。
PMD:是一款采用BSD协议发布的Java程序代码检查工具,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。
FindBugs:是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
Checkstyle:是一个静态分析工具,检查Java程序代码。
Cppcheck是一种C/C++代码缺陷静态检查工具。
PC-Lint也是一种静态代码检测工具,检查C或C++。
目前,中心使用的是Checkstyle工具。我个人觉得PMD和Checkstyle很类似,都可以以插件的形式集成到Eclipse或是MyEclipse开发环境中。下面就Checkstyle在Eclipse中的使用详细介绍下,同时,也欢迎大家继续补充。
1 Checkstyle的下载和安装
1.1 Checkstyle的下载
Checkstyle可以从其官网http://checkstyle.sourceforge.net/中下载。官网中还提供了Checkstyle的相关文档,如配置文件、代码检查项等,内容比较丰富,覆盖面也较齐全。可依据自身需要,参考官网上的相关资料。进入Checkstyle的官网后,进入Download页面,可以下载Checkstyle。目前,大多数开发项目使用Eclipse或是MyEclipse的集成开发环境,因此我推荐进入http://en.sourceforge.jp/projects/sfnet_eclipse-cs/releases/下载,该网站上有EclipseCheckstyle Plug-in的各种版本。下文的介绍中,我采用的是net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip版本的Checkstyle插件。
1.2 Checkstyle的安装
以下的安装过程,基于Eclipse SDK-3.7.2。
(1)打开eclipse,在help中选择install software。
(2)点击add, 选择中Checkstyle安装包net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip;
(3)点击OK,进入下一步;
(4)重启Eclipse。
确认安装成功的步骤:
打开eclipse,选择window->preferences->左边导航栏中Checkstyle,如果出现checkstyle说明你安装成功。
2 Checkstyle的配置
Checkstyle默认提供的配置文件有两个:一是Sun Checks,对应的配置文件是sun_checks.xml文件,含义是Checkstyle configuration that checks the sun coding conventions;一般Checkstyle默认的设置就是sun_checks.xml配置文件。另一个是Sun Checks(Eclipse),对应的配置文件是sun_checks_eclipse.xml,含义是Slightly modified version of Sun Checks that better matches the default code formatter setting of Eclipse.
一般Sun Checks的检查项限定得较为严格,我们实际项目中并不要求那么完美的编程规范,那么可以自己定义检查的配置文件,最后将Checkstyle的配置文件设定为我们自定义的文件即可。关于检查项的设定,我会是下面章节中讲解。先来看看Checkstyle如何快速使用吧。
3 Checkstyle的快速入门使用
Checkstyle安装好之后,就可以使用它来检查我们的代码啦。
3.1 使用Checkstyle检查单个java文件
选中文件,右击选择Checkstyle,选择Check Code with Checkstyle。
此时,看看原文件的变化吧。原文件上会在不符合规范的地方出现黄颜色!号,鼠标停留在叹号处,可以看到信息提示。或者,在Console控制台一栏,可以看到Checkstyle violations 的视图,里面会有信息提示。
选择Checksty violations chart视图,会把每种不规范的信息做下统计,绘制成图表,够人性化吧,哈哈哈。
3.2 使用Checkstyle检查整个项目
在项目名上,右击选择Checkstyle,选择Check Code with Checkstyle。
查看不规范的信息,方法同3.1节一样。
Checkstyle 也可以检查整个包的文件,或者某一代码段的文件。具体的,大家可以依据需要,我不再一一介绍。
4、Checkstyle的各种检查项
前面说到用户可以自定义各种检查项,下面给大家介绍下Checkstyle中各种常用的检查项。在第五部分中,我会介绍如何依据检查的需求来定制检查文件。
因篇幅局限,为了让大家不至于看得太累,也为讲得更透彻,我把Checkstyle的检查项配置内容单独写为一篇博客。有兴趣的读者可浏览《Checkstyle的检查项配置详解
》一文。
欢迎大家参与讨论,以期待继续改进。