命令行应用
官网文档对命令行用法讲解的很详细,基本分为以下几步。
安装
下载独立运行包(checkstyle-5.6-bin.zip),解压到d:\apps下;
写配置文件
可以在eclipse中用插件eclipse-cs写出来,然后查到这个配置的文件名,然后拷贝出来作为配置文件;
cc.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
注意
...
在Jenkins上执行Checkstyle检查时需要将severity设置为wanning,因为默认违反规则将被作为error,导致ant脚本执行结果被标记为失败,从而整个BVT执行失败。
执行代码检查
下面的命令检查了E:\workspace\JDK6UTF8\Godu3NewBuffer\src目录中所有代码的圈复杂度:
E:\workspace\JDK6UTF8\Godu3NewBuffer>java -jar d:\Apps\checkstyle-5.6\checkstyle-5.6-all.jar -c cc.xml -r src -o result.txt
其中-c后面写规则(配置)文件名,-r后面写待检查的文件/目录名,-o后面是结果输出文件名,-f xml表示输出为xml文件(默认是plain文本文件),如果不需要保存到文件中,只是查看一下结果,去掉-o,结果输出到屏幕上;
以Ant任务形式运行
-
将上述zip包中的checkstyle-5.6-all.jar文件拷贝到$ANT_HOME/lib下;
-
下面是一个简单的checkstyle任务,更多的检查方法参考Ant Task of Checkstyle
作为Eclipse插件
安装
这个插件叫eclipse-cs,先是在线装,连不上,改为下载zip包,解压到dropins目录的方法安装成功。
使用
CheckStyle的功能是通过一个具体的配置(configuration)来发挥作用的,对于被检查的项目,在属性里activate checkstyle,它就会在每次构建(build)项目的时候自动运行,如果是自动构建,则每次保存文件都会触发checkstyle执行代码检查。
使用CheckStyle分为两步,首先是Window->Preference里新建一个configuration,用来定义要检查的项目(如代码的圈复杂度、javadoc格式等),然后在被检查的项目属性里指定使用这个configuration,并定义检查的范围(例如只检查打开的文件、指定具体的包等)。
进行代码复杂度检查
第一步配置执行复杂度检查的configuration: Window -> Preference -> CheckStyle -> Global check configurations -> new,打开新建conf的窗口,写一个名字然后点OK:
在configuration窗体里选中 Metrics -> Cyclomatic Complexity:
点Add后出现配置窗体,在这里输入严重级别和判断标准,默认值为10,即当圈复杂度超过10时标记出来,确认退出。
第二步是在被检查的项目属性的checkstyle窗体中配置参数,首先是激活checkstyle,然后是选择一个configuration,最后是配置那些文件不进行检查,配好后确认就OK了。
检查结果的汇总在Window -> Show View -> Checkstyle violations中,还提供了一个饼图窗口;
GODU的新版本有些方法复杂度已经超过20了,汗,后面得好好重构才行。下面是checkstyle推荐的复杂度判断标准:
Generally 1-4 is considered good, 5-7 ok, 8-10 consider re-factoring, and 11+ re-factor now!
总结
Eclipse插件没有生成报告功能,优点是提供了离线安装包,安装过程对我等天朝草民来说比较简单;
与PMD相比,CheckStyle适合在写代码的同时打开代码检查功能进行“实时监控”,如果是代码已写完,需要对整体质量进行评估,或者找问题点,则PMD比较适合,因为它具备PMD视图,可以对结果汇总。