开发,尤其是团队开发时,经常面临这样的问题:
- “你的函数命名怎么不符合规范”
- “你的第三个参数怎么没有注释”
- “你一个函数写了3000行,这怎么能行?”
以上都不会影响代码的运行,但是却给程序布下了不便或者隐患。所以开发前,团队总会制定规范文档,但是文档只具有借鉴的作用,不具有约束力,靠的是大家的自律;如果靠人工检查,耗时耗力——你需要Checkstyle。
前段时间为了保证团队开发的在风格上的一致性,比如:函数命名、代码长度 、文件长度、注释规范等,写了一个关于Checkstyle基础文档,供大家参考学习《Checkstyle_下载_配置_使用手册》。
简介
Checkstyle是检查Java程序源代码样式的插件,帮助我们检查代码,以更好的符合标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了灵活的配置性,所以除了使用它提供的几种常见标准之外,你也可以定制自己的标准。总的来说,Checkstyle就是帮助我们检测源码规范并给出修改建议的一个工具。
安装
以Eclipse Juno为例。在线安装
代理
为保证在线安装的速度,需要使用代理,代理成功成功后,需要配置Eclipse的网络连接,依次打开Window—Preferences—Generral—Network Connection.
1. Active Provider,选择为Manual
2. 编辑Proxy entries下的HTTP和HTTPS的Host为127.0.0.1,Port为:8087
3. 保存
安装
依次打开Help—Eclipse Marketplace,输入Checkstyle,选择第一个点击install,一直点击Next……Finish即可,中间提醒是否继续,点击Ok。下载安装
1. 进入网址:http://sourceforge.net/projects/eclipse-cs/files/updatesite/,出现版本列表:2. 以5.7.0为例,进入5.7.0,分别下载plugins和featrues下的文件
3. 并对应放到Eclipse安装目录下的plugins和featrues中,即可安装成功。
依次进入Window—Preferences,如果出现CheckStyle则表示安装成功。
使用
在需要使用Checkstyle的项目上,右键-Properties—CheckStyle,然后配置:- 勾选Checkstyle active for this project
- 选择制定的模板文件
然后打开使用Checkstyle的项目文件,如ICollegeBean.java即可看到Checkstyle的效果,每个小放大镜都会提示问题位置及原因:
自定义配置
配置样板
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<!--提示信息的严重性-->
<property name="severity" value="warning"/>
<!-- Checks that a package.html file exists for each package. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
<module name="JavadocPackage"/>
<!-- 忽略检测文件末尾是否有新行 -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<module name="NewlineAtEndOfFile">
<property name="severity" value="ignore"/>
</module>
<!-- 检测两个资源文件是否具有相同的key -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<!--……………………其它配置…………-->
</module>
在它内部,将每个需要检测的单元以module的方式封装起来,需要检查哪些检测,将该module放入配置文件,并指定值即可。
常见检测
一般我们都需检测什么:
1.tab宽度:每个tab代表4个单位宽度
2.注释:检测注释的名称和个数是否和参数匹配
3.命名规范:检测函数和参数名是否符合Sun规范
4.import:检测import引用项是否符合规范
5.代码行长度:定义为最长120个宽度
6.函数长度:函数最长代码行为150行
7.参数个数:函数参数个数最多为7个
8.空格:检测不必要的空格
9.嵌套:检测嵌套情况
10.文件长度:文件最长为2000行
11.资源文件:检测相同名称的资源文件是否有相同的key
12.编码规范:检测常见编码规范,如空行、静态变量使用、非法对象实例化
总结
凡是与人工代码无关的内容,请交给计算机。更多详见《Checkstyle_下载_配置_使用手册》。