1. 认识Checkstyle
CheckStyle是SourceForge下的一个项目,提供了一个帮助Java开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要但枯燥的任务中解脱出来。它可以根据设置好的编码规则来检查代码。比如符合规范的变量命名,方法体的最大行数,重复代码检查等等。
如果你的项目经理开会时说:“我希望我们写出来的代码就象一个人写的!”,那么用Checkstyle绝对是正确选择!
2. 资源说明
Checkstyle:http://sourceforge.net/projects/eclipse-cs/
本篇是在eclipse4.2上面安装最新版的checkstyle插件为例。Eclipse的位置在D:\Program Files\eclipse,checkstyle下载后在D:\Sdk\checkstyle\net.sf.eclipsecs-updatesite_5.7.0.201402131929-bin.zip,其中使用的checkstyle规则文件在D:\Sdk\checkstyle\style_template.xml
资源下载地址:
http://download.csdn.net/detail/ccboy2009/7521353
3. Checkstyle插件安装
下面讲解checkstyle在eclipse上的两种安装方式。
Ø 离线安装
① 下载checkstyle离线安装包;
http://sourceforge.net/projects/eclipse-cs/
② 下载完成后将压缩包中features文件夹和plugins文件夹的复制到eclipse中的根目录中进行覆盖;
③ 打开eclipse,Window-->Preferences,如果列表中出现了checkstyle的菜单,则表示安装成功了。
注意:如果启动eclipse时,提示ClassNotFoundException等异常信息,则启动时加上一个“-clean”参数启动即可。
Ø 在线安装
注意在安装过程中保持网络畅通,如果网络不稳定可能会导致安装失败。
Help --> Install New Software
CheckStyle插件地址:http://eclipse-cs.sourceforge.net/update
Next-->next-->选择 I accept... Finish。Checkstyle插件就开始安装。
在安装过程中,可能会出现警告提示,选择ok即可。
安装完成后,根据提示重启eclipse,checkstyle即安装完成。
4.Checkstyle全局配置
Window -->Preferences,选择checkstyle菜单,增加项目组统一的规则文件,并设置为默认规则。如下图:
到此全局配置已经完成。
5. Checkstyle项目配置
项目 --> 右键Properties
到此项目配置已经完成。成功的话,checkstyle已经开始工作了。
此次发现项目上有很多红叉叉,说明是代码符合规范造成的。
根据提示信息修改后,则没有有红色的提示。
6. 其它操作
在项目右键菜单中,checkstyle还有一些快捷操作,如下图所示:
7.checkStyle 使用
选中工程,右键选择checkstyle->check code withcheckstyle,检查错误即可
Checkstyle的结果输出
序号
输出内容意义
1 Type is missing a javadoc commentClass
缺少类型说明
2“{” should be on the previous line “{” 应该位于前一行
3Methos is missing a javadoc comment方法前面缺少javadoc注释
4Expected @throws tag for “Exception”在注释中希望有@throws的说明
5“.” Is preceeded with whitespace “.” 前面不能有空格
6“.” Is followed by whitespace“.” 后面不能有空格
7“=” is not preceeded with whitespace“=” 前面缺少空格
8“=” is not followed with whitespace“=” 后面缺少空格
9“}” should be on the same line“}” 应该与下条语句位于同一行
10Unused @param tag for “unused”没有参数“unused”,不需注释
11Variable “CA” missing javadoc变量“CA”缺少javadoc注释
12Line longer than 80characters行长度超过80
13Line contains a tab character行含有”tab” 字符
14Redundant “Public” modifier冗余的“public” modifier
15Final modifier out of order with the JSL suggestionFinalmodifier的顺序错误
16Avoid using the “.*” form of importImport格式避免使用“.*”
17Redundant import from the same package从同一个包中Import内容
18Unusedimport-java.util.listImport进来的java.util.list没有被使用
19Duplicate import to line 13重复Import同一个内容
20Import from illegal package从非法包中 Import内容
21“while” construct must use “{}”“while” 语句缺少“{}”
22Variable “sTest1” must be private and have accessormethod变量“sTest1”应该是private的,并且有调用它的方法
23Variable “ABC” must match pattern“^[a-z][a-zA-Z0-9]*$”变量“ABC”不符合命名规则“^[a-z][a-zA-Z0-9]*$”
24“(” is followed by whitespace“(” 后面不能有空格 25“)” is proceededby whitespace“)” 前面不能有空格