CheckStyle是什么?
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来[1]。
2.2. CheckStyle检验的主要内容
CheckStyle默认提供一下主要检查内容:
·Javadoc注释
·命名约定
·标题
·Import语句
·体积大小
·空白
·修饰符
·块
·代码问题
·类设计
·混合检查(包活一些有用的比如非必须的System.out和printstackTrace)
从上面可以看出,CheckStyle提供了大部分功能都是对于代码规范的检查,而没有提供象PMD和Jalopy那么多的增强代码质量和修改代码的功能。但是,对于团队开发,尤其是强调代码规范的公司来说,它的功能已经足够强大。
2.3. CheckStyle的主要运行方式
目前,CheckStyle的版本是3.0,与以前的版本不同,它的配置文件是基于XML而非Properties文件。
它的3.0版本提供了两种运行的方式:
·命令行工具
·ANT任务
同时,CheckStyle目前有很多针对流行IDE的插件,例如Eclipse、IntelliJ IDEA、JBuilder等。但是,大部分都是基于2.4的版本,新版本的特性不支持,同时配置也较为复杂。
因为一般情况下,如果与开发过程与环境集成起来,编码规范的检查会更加有效,因此,作为ANT任务的运行方式使用的更加普遍。
在ANT的build.xml文件中添加CheckStyle任务的步骤如下:
1. 将checkstyle-all-3.1.jar拷贝到项目的LIB目录;
2. 建立配置文件;
3. 声明CheckStyle任务:
<taskdef resource="checkstyletask.properties" classpath="${lib}/checkstyle-all-3.1.jar"/>
4. 建立CheckStyle任务:
<target name="checkstyle">
<checkstyle c>
<fileset dir="${src}" includes=" **
public void setOrganization(OrganizationDTO orgDto) throws Exception;
public OrganizationDTO getOrganization() throws Exception;
......
}
解释:多余的字段。public OrganizationDTO getOrganization() throws Exception;此时public为多余的字段,因为interface定义的时候,就是public的。
需要检查。
4. - Class X should be declared as final.
解释:对于单例设计模式,要求返回唯一的类对象。但是HRFactory和ContextFactory为优化的两个类,不需求检查。
其他的单例类,依然需要进行检查。
5. Utility classes should not have a public or default constructor.
解释:工具类不必提供默认的构造方法。
需要检查,仅仅为提示。
6. File does not end with a newline.
解释:虽然JAVA程序不要求结尾要用新行,但是习惯上应该要空一行。
需要检查,仅仅为提示。
7. - Method 'addChildrenId' is not designed for extension - needs to be
abstract, final or empty.
解释:通过父类继承的,此类有点特殊
可以忽略此类。
8. Variable 'id' must be private and have accessor methods.
解释:BaseHRDTO类,为父类,属性给子类继承,比较特殊。
但是其他的类,声名需要加上范围'private'关键字
需要检查。
9. -Array brackets at illegal position.
解释:代码写法,习惯不一样。
需要检查,仅仅提示。