Checkstyle4.3 中文手册

 

写道
Checkstyle4.3 中文手册
加入OpenDoc前的 预览版。
申 思维

1.0

版权 © 2008 申思维

本文根据Checkstyle4.3 英文官方文档而来。我打算发布成OpenDoc, 欢迎大家给我来信,多提意见!谢谢

目录

1. 前言
1. 介绍

1.1. 概述
1.2. 特点
1.3. 下载

2. N分钟入门
3. 常用的检查

3.1. 典型的配置文件

4. 用的最多的20%功能
5. 在Ant中使用Checkstyle

5.1. N分钟极速入门
5.2. 安装与配置
5.3. 典型例子
5.4. checkstyle任务的参数
5.5. 可以嵌套的ant元素

6. 在Eclipse中使用Checkstyle

6.1. 下载和安装
6.2. 配置方法
6.3. 使用
6.4. 常见问题

7. 各种检查

7.1. 如何配置检查
7.2. JavaDoc注释

7.2.1. 类和接口的javadoc
7.2.2. 方法的javadoc
7.2.3. 方法的javadoc
7.2.4. 变量的javadoc

7.3. 命名约定

7.3.1. 模块一览
7.3.2. 注意

7.4. 文件头
7.5. Imports

7.5.1. import中避免星号"*"
7.5.2. 没用的import

7.6. 长度限制

7.6.1. 文件长度
7.6.2. 每行长度
7.6.3. 方法长度
7.6.4. 方法的参数个数

7.7. 空格

7.7.1. 方法名与左边圆括号之间
7.7.2. 圆括号附近的空格
7.7.3. 类型转换中圆括号附近的空格
7.7.4. 对"Tab"的检查
7.7.5. 特定符号后的空格

7.8. 关键字

7.8.1. 关键字的出现顺序
7.8.2. 多余的关键字

7.9. 对区域(empty block)的检查

7.9.1. 空白区域
7.9.2. 对左侧括号{ 的检查(略)
7.9.3. 需要括号的区域
7.9.4. 对右侧括号} 的检查(略)
7.9.5. 不必要的括号

7.10. 编码的检查

7.10.1. 数组尾巴的逗号
7.10.2. 避免内联(inline)条件判断
7.10.3. override的equals方法
7.10.4. 空语句(statement)
7.10.5. equals和hashCode方法
7.10.6. 应该声明成final的局部变量
7.10.7. 不合适的初始化
7.10.8. 不合适的token
7.10.9. 内部赋值语句
7.10.10. 魔法数
7.10.11. 丢了default分支的switch
7.10.12. 被更改的循环控制变量
7.10.13. 多余的throw
7.10.14. 未被简化的条件表达式
7.10.15. 未被简化的布尔返回值
7.10.16. 字符串(String)的比较
7.10.17. 嵌套的if 层次
7.10.18. 嵌套的try 层次
7.10.19. 调用父类的clone
7.10.20. 父类的finalize
7.10.21. 不合理的catch
7.10.22. 不合理的throws
7.10.23. package 声明
7.10.24. JUnitTestCase
7.10.25. return 语句的数量
7.10.26. 声明的顺序
7.10.27. 参数被赋值
7.10.28. 详尽的变量初始化
7.10.29. switch语句的default位置排在最后
7.10.30. 丢失的构造函数
7.10.31. switch中错误分支。
7.10.32. 多个内容相同的字符串变量
7.10.33. 同一行禁止声明多个变量
7.10.34. 不使用this
7.10.35. 不必要的圆括号

7.11. Class的设计

7.11.1. 可见的修改方法
7.11.2. Final class
7.11.3. Interfacels Type
7.11.4. 隐藏工具类的构造方法
7.11.5. 方便继承(extention)而进行的设计
7.11.6. throws的数量

7.12. 重复的代码

7.12.1. StrictDuplicateCode 严格的重复代码检查

7.13. 各种量度

7.13.1. 布尔表达式的复杂度
7.13.2. 类数据的抽象耦合
7.13.3. 类的分散复杂度
7.13.4. 函数的分支复杂度
7.13.5. Npath复杂度

7.14. 杂项

7.14.1. 禁止使用的表达式
7.14.2. 文件结尾的回车
7.14.3. Todo注释
7.14.4. 翻译属性文件
7.14.5. 没有被注释掉的Main函数
7.14.6. 大写的L
7.14.7. 声明数组的风格
7.14.8. final型的参数
7.14.9. 缩进
7.14.10. 与代码同行的注释
7.14.11. 必须出现的字符串

术语表
参考书目

插图清单

2.1. 测试如何使用checkstyle的项目
2.2. 开启Checkstyle
2.3. 代码窗口中的错误提示
2.4. Problems窗口中的错误提示
2.5. 增加了class的注释后的效果图
2.6. 使用自定义的Checkstyle配置文件
2.7. 定制配置的检查结果
2.8. 修正后的定制配置的检查结果
5.1. 在Ant环境下Checkstyle的所须文件
5.2. Ant下Checkstyle检查正确的结果
5.3. Ant下Checkstyle检查错误的结果
6.1. 成功安装Checkclipse后的Preferences窗口
6.2. 配置单个项目的Checkclipse
6.3. 设置单个项目的Checkclipse的文件过滤器(file filter)
6.4. 出错信息中的检查名
6.5. Problems的过滤器中配置Checkclipse。
6.6. 右键菜单中的checkstyle选项

表格清单

5.1. checkstyle任务属性表
5.2. formatter元素的属性
7.1. 命名约定检查模块一览表
7.2. WhitespaceAfter 属性列表
7.3. 重复代码插件的特性摘要:
7.4. GenericIllegalRegexp的属性列表
7.5. NewlineAtEndOfFile的属性列表
7.6. Indentation的属性列表

前言
Preface

Checkstyle是非常优秀的代码规范检查软件,可以大幅的提高代码质量, 当项目的开发人员比较多时,用它来统一代码风格是很有必要的。

本文的写作,是由于公司的质量管理部门对代码格式进行了要求。 在网上也没有发现有比较详细全面的中文文档。所以参考Checkstyle4.3的官方文档写就。

有个比较神奇的20%-80%规律是这样说的:一本书,用的最多的只是20%的内容,它的出现几率是80%; 而剩下的80%内容,被使用的不到20%。这个规律也同样适用在其他东东上。只是数据上稍有差异。 所以我特意安排了 第 4 章 用的最多的20%功能 ,作为典型的使用方法。

对于赶时间的朋友,也可以直接看第 2 章 N分钟入门 ,可以让你在最快的时间内入门。 对于时间充沛的朋友,建议多看看文档。因为作者一再的强调“it is worth reading the documentation”。

第 5 章 在Ant中使用Checkstyle 说明了在ant下的用法。第 6 章 在Eclipse中使用Checkstyle 说明了Eclipse的插件Checkclipse的用法。

对于初次接触代码规范的朋友,我安排了第 3 章 常用的检查 ,里面是个人以为满足大多数公司要求的检查,包括一个配置文件。

第 7 章 各种检查 是各种检查的详细用法,读起来比较枯燥,建议象查字典那样有需要时翻阅,所以放在最后。
[小心] 欢迎意见

为了加入OpenDoc , 欢迎各位朋友指出文档中的任何错误和不足,也可以给我任何意见。请Email给我:shensiwei(at)sina.com

希望本文对您有用。谢谢!
第 1 章 介绍
Introduction

目录

1.1. 概述
1.2. 特点
1.3. 下载

1.1. 概述

Checksytle 是一款代码格式检查工具。它可以根据设置好的编码规则来检查代码。 比如符合规范的变量命名,良好的程序风格等等。如果你的项目经理开会时说,“我希望我们写出来的代码就象一个人写的!” 时,用Checkstyle绝对是正确选择。:)

本文档就是在4.3的基础上完成。截止到2008-02-22,最新的版本是4.4。

需要强调的是,Checkstyle只能做检查,而不能做修改代码。
[小心] 提醒

想修改代码格式,请使用Jalopy. 它和Checkstyle配合使用非常合适。
1.2. 特点

Checkstyle的配置性极强,你可以只检查一种规则,也可以检查三十,四十种规则。可以使用Checkstyle自带的规则, 也可以自己增加检查规则。(这点跟 Ant 自定义target比较象)

支持几乎所有主流IDE,包括 Eclipse , IntelliJ, NetBeans, JBuilder 等11种。
1.3. 下载

最新的发布版本在 : 这里

4.4使用了SVN,关闭了CVS。SVN在 这里

各种插件下载,见 Checkstyle主页 中的列表。
第 2 章 N分钟入门
extreme learning

让您在几分钟之内了解Checkstyle的大致用法。适合赶时间的朋友。假设您已经安装好了Checkstyle的Eclipse插件。
[小心] 测试

欢迎在阅读下一行之前,记录下当前的时间,然后在读完本节之后,算算您用了多少时间。 如果方便,请将您用的时间告诉我,谢谢:)

1.

首先,我们建立一个eclipse的项目:test_checkstyle。包含一个源文件夹:src,一个目标生成文件夹 eclipse_build. 如 图 2.1 “测试如何使用checkstyle的项目” 所示。
测试如何使用checkstyle的项目

图 2.1. 测试如何使用checkstyle的项目
2.

在项目中开启Checkstyle: 打开该project的属性,点中左侧的Checkclipse后,将"Enable Checkstyle"前面打上勾。 如 图 2.2 “开启Checkstyle” 所示。
开启Checkstyle

图 2.2. 开启Checkstyle
3.

建立一个测试用的Class: 比如SomeClassToBeChecked,内容如下:

/*
* Copyright (c) 2001-2008 Beijing BidLink Info-Tech Co., Ltd.
* All rights reserved.
* Created on 2008-2-22
*
* $Id: learn_in_5_min.xml,v 1.3 2008/03/03 03:43:44 Administrator Exp $
*/
package test;

public class SomeClassToBeChecked {

}


只有一个头部注释,没有方法,啥啥都没有。
4.

用Checkstyle检查它:右键点项目名,选择"Build Project",会把src文件夹进行编译,把class文件放到eclpise_build中。 结束之后,我们可以看到: 图 2.3 “代码窗口中的错误提示” 中的代码第10行处,有一个叹号,把鼠标移上去就会出现 提示"Missing a Javadoc comment."
代码窗口中的错误提示

图 2.3. 代码窗口中的错误提示

同时,在Problems窗口中也有提示,如 图 2.4 “Problems窗口中的错误提示” 所示。
Problems窗口中的错误提示

图 2.4. Problems窗口中的错误提示
5.

修改代码:既然提示说缺少了Javadoc注释,我们就把它加上。 如 图 2.5 “增加了class的注释后的效果图” 所示。
增加了class的注释后的效果图

图 2.5. 增加了class的注释后的效果图

然后重新编译,可以看出,Warning没有了。检查通过。
[小心] 注意

上面的很简单是吧?恩,我也这么觉得。但别走!如果以为这样就可以用Checkstyle, 那你就错了。你可以试一下用同样的方式来编译一个项目,会发现根本是Warning满天飞。为什么?因为Checkstyle自带的检查非常变态, 随便一个项目都可以弄出几千个Warning。所以,想用它,一定要使用自己的定制检查。:)
6.

定制检查:Checkstyle没有图形化的定制器,所以需要手工修改配置文件。比如,我们的代码需要符合下列规则:
*

长度方面:文件长度不超过1500行,每行不超过120个字,方法不超过60行.
*

命名方面:类名不能小写开头,方法名不能大写开头,常量不能有小写字母。
*

编码方面:不能用魔法数(Magic Number),if最多嵌套3层。

那么,我们的检查配置文件(如命名成 my_check.xml ) 应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<module name="TreeWalker">

<!-- 长度方面的检查 -->
<!-- 文件长度不超过1500行 -->
<module name="FileLength">
<property name="max" value="1500"/>
</module>
<!-- 每行不超过120个字-->
<module name="LineLength">
<property name="max" value="120"/>
</module>
<!-- 方法不超过60行 -->
<module name="MethodLength">
<property name="tokens" value="METHOD_DEF"/>
<property name="max" value="60"/>
</module>

<!-- 命名方面的检查,它们都使用了Checkstyle默认的规则。 -->
<!-- 类名(class 或interface) 的检查 -->
<module name="TypeName"/>
<!-- 方法名的检查 -->
<module name="MethodName"/>
<!-- 常量名的检查 -->
<module name="ConstantName"/>

<!-- 编码方面的检查 -->
<!-- 不能用魔法数 -->
<module name="MagicNumber"/>
<!-- if最多嵌套3层 -->
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>

</module>
</module>


可以看出,想增加一个检查,就是增加一个<module/>结点。具体的结点内容在后面的文档都会写明。
7.

让Checkstyle使用指定的检查配置文件:打开项目属性,在Checkclipse中的"Checkstyle Configuration File" 一栏中 选定我们的配置文件,然后确定。如 图 2.6 “使用自定义的Checkstyle配置文件” 所示。
使用自定义的Checkstyle配置文件

图 2.6. 使用自定义的Checkstyle配置文件

然后重新编译项目,就会发现,Checkstyle的规则如我们所愿:只检查我们在文件中配置的几项。并且它们是以"Error"级别进行提示,而不是默认检查时出现的"Warning"级别。 比如,我们把一个方法中,增加4层嵌套(共5个if),并将方法名大写,就会出现 图 2.7 “定制配置的检查结果” :
定制配置的检查结果

图 2.7. 定制配置的检查结果

可以看到,出现了两个Error: 方法名的"Name xx must match pattern..." 和if嵌套的"Nested if-else depth is 4..."。 把它们都改过来,程序就好了。
8.

代码的修正:依照上面的例子,把方法名小写,if循环嵌套3层,然后重新编译,OK。如: 图 2.8 “修正后的定制配置的检查结果”
修正后的定制配置的检查结果

图 2.8. 修正后的定制配置的检查结果

到这里就结束了。看明白了吗?欢迎给我意见,以及看到这里所用的时间。:)

想在N分钟内了解ant下checkstyle的使用方法,请看 第 5.1 节 “N分钟极速入门”
第 3 章 常用的检查

目录

3.1. 典型的配置文件

Checkstyle自带了两个配置文件:checkstyle_checks.xml 和 sun_checks.xml。前者是checkstyle作者定义的,后者是严格符合Sun编码规范 的。 可惜它们的检查太过严格,任何一个项目都会搞出上千个Warning来。

所以这里提供了一个配置文件,包含了比较常用的检查,去掉了对空格位置,大括号位置等国内不注重的内容, 建议个人使用。

如果是公司使用,建议把它再精简些。因为对公司来说,这个配置文件还是比较苛刻的。
3.1. 典型的配置文件

下面是一个典型的checkstyle配置文件,应该适合于大多数情况的要求。每个检查前的注释说明了它的作用。本文的PDF文档 无法正常显示其中的汉字,建议本节使用HTML版查看。:)

<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">

<!-- 重复代码的检查,超过8行就认为重复,UTF-8格式
本检查一定要放在"TreeWalker"节点前,否则在
Checkclipse中会无法使用。(在ant下可以)
-->
<module name="StrictDuplicateCode">
<property name="min" value="8"/>
<property name="charset" value="UTF-8"/>
</module>

<module name="TreeWalker">

<!-- javadoc的检查 -->
<!-- 检查所有的interface和class -->
<module name="JavadocType"/>

<!-- 检查所有方法的javadoc,可以不声明RuntimeException -->
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
</module>
<!-- 检查某个变量的javadoc -->
<module name="JavadocVariable"/>

<!-- 命名方面的检查,它们都使用了Sun官方定的规则。 -->
<!-- 类名(class 或interface) 的检查 -->
<module name="TypeName"/>
<!-- 变量的检查 -->
<module name="MemberName"/>
<!-- 方法名的检查 -->
<module name="MethodName"/>
<!-- 方法的参数名 -->
<module name="ParameterName "/>
<!-- 常量名的检查 -->
<module name="ConstantName"/>


<!-- 长度方面的检查 -->
<!-- 文件长度不超过1500行 -->
<module name="FileLength">
<property name="max" value="1500"/>
</module>
<!-- 每行不超过120个字-->
<module name="LineLength">
<property name="max" value="120"/>
</module>
<!-- 方法不超过30行 -->
<module name="MethodLength">
<property name="tokens" value="METHOD_DEF"/>
<property name="max" value="30"/>
</module>
<!-- 方法的参数个数不超过3个。 -->
<module name="ParameterNumber">
<property name="max" value="3"/>
</module>


<!-- 多余的关键字 -->
<module name="RedundantModifier"/>
<!-- 对区域的检查 -->
<!-- 不能出现空白区域 -->
<module name="EmptyBlock"/>
<!-- 所有区域都要使用大括号。 -->
<module name="NeedBraces"/>
<!-- 多余的括号 -->
<module name="AvoidNestedBlocks">
<property name= "allowInSwitchCase"
value="true"/>
</module>




<!-- 编码方面的检查 -->

<!-- 不许出现空语句 -->
<module name="EmptyStatement"/>
<!-- 每个类都实现了equals()和hashCode() -->
<module name="EqualsHashCode"/>
<!-- 不许使用switch -->
<module name="IllegalToken">
<property name="tokens"
value="LITERAL_SWITCH"/>
</module>
<!-- 不许内部赋值 -->
<module name="InnerAssignment"/>
<!-- 绝对不能容忍魔法数 -->
<module name="MagicNumber"/>
<!-- 循环控制变量不能被修改 -->
<module name="ModifiedControlVariable"/>
<!-- 多余的throw -->
<module name="RedundantThrows"/>
<!-- 不许使用未被简化的条件表达式 -->
<module name="SimplifyBooleanExpression"/>
<!-- 不许使用未被简化的布尔返回值 -->
<module name="SimplifyBooleanReturn"/>
<!-- String的比较不能用!= 和 == -->
<module name="StringLiteralEquality"/>
<!-- if最多嵌套3层 -->
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<!-- try最多被嵌套1层 -->
<module name="NestedTryDepth"/>
<!-- clone方法必须调用了super.clone() -->
<module name="SuperClone"/>
<!-- finalize 必须调用了super.finalize() -->
<module name="SuperFinalize"/>
<!-- 不能catch java.lang.Exception -->
<module name="IllegalCatch">
<property name="illegalClassNames"
value="java.lang.Exception"/>
</module>
<!-- JUnitTestCase 的核心方法存在。 -->
<module name="JUnitTestCase"/>
<!-- 一个方法中最多有3个return -->
<module name="ReturnCount">
<property name="max" value="3"/>
</module>
<!-- 不许对方法的参数赋值 -->
<module name="ParameterAssignment"/>
<!-- 不许有同样内容的String -->
<module name="MultipleStringLiterals"/>
<!-- 同一行不能有多个声明 -->
<module name="MultipleVariableDeclarations"/>


<!-- 各种量度 -->
<!-- 布尔表达式的复杂度,不超过3 -->
<module name="BooleanExpressionComplexity"/>
<!-- 类数据的抽象耦合,不超过7 -->
<module name="ClassDataAbstractionCoupling"/>
<!-- 类的分散复杂度,不超过20 -->
<module name="ClassFanOutComplexity"/>
<!-- 函数的分支复杂度,不超过10 -->
<module name="CyclomaticComplexity"/>
<!-- NPath复杂度,不超过200 -->
<module name="NPathComplexity"/>


<!-- 杂项 -->
<!-- 禁止使用System.out.println -->
<module name="GenericIllegalRegexp">
<property name="format" value="System\.out\.println"/>
<property name="ignoreComments" value="true"/>
</module>

<!-- 不许使用与代码同行的注释 -->
<module name="TrailingComment"/>

</module>



<!-- 检查翻译文件 -->
<module name="Translation"/>

</module>


第 4 章 用的最多的20%功能
Core 20%

这里列出了个人以为的20%的最常用功能。欢迎您把自己认为的20%发过来,我会进行一个统计,及时更新本节。

*

命名符合规范

类,方法,成员变量等等的命名,一般要遵循 Sun编码规范 。
*

编码中的长度问题

类,方法的长度不应该过大。
*

编码习惯的检查

检查代码中是否有过多的if嵌套,魔法数,switch丢失的default, 复杂的条件表达式等。
*

重复的代码

如果两个代码段出现了一定行数的严格重复,就判定它们已经重复。

第 5 章 在Ant中使用Checkstyle

目录

5.1. N分钟极速入门
5.2. 安装与配置
5.3. 典型例子
5.4. checkstyle任务的参数
5.5. 可以嵌套的ant元素

如果您赶时间,请看第 5.1 节 “N分钟极速入门” 。:)
5.1. N分钟极速入门

(请打开一个秒表记时,谢谢)

需要"checkstyle-all-4.3.jar",该jar文件包含了checkstyle所用的几乎所有类。

需要有一个指定的配置文件,比如当前项目中的"./config/my_check.xml"。

另外,把checkstyle-all.jar放在一个合适的目录中,比如"./lib"。

最后,设置Ant的输出文件夹为"./ant_build" 如 图 5.1 “在Ant环境下Checkstyle的所须文件” 所示。
在Ant环境下Checkstyle的所须文件

图 5.1. 在Ant环境下Checkstyle的所须文件

ant的配置文件中需要指定一个taskdef来定义checkstyle任务, 然后在checkstyle任务中指定配置文件(config属性), 和需要被检查的文件夹(fileset)。本例使用的ant文件是这样的:

<?xml version="1.0" ?>
<project>
<taskdef resource="checkstyletask.properties"
classpath="./lib/checkstyle-all-4.3.jar"/>
<target name="my_check">
<checkstyle config="config/my_check.xml">
<fileset dir="src" includes="**/*.java"/>
</checkstyle>
</target>
</project>


如果checkstyle检查通过,则会看到"BUILD SUCCESSFUL", 如 图 5.2 “Ant下Checkstyle检查正确的结果” 所示。
Ant下Checkstyle检查正确的结果

图 5.2. Ant下Checkstyle检查正确的结果

如果checkstyle检查到出错,就会输出错误信息,包括所有检查到的错误。比如,我们把一个方法的长度超过60,方法名大写,就会看到出错信息,并且"BUILD FAILED" 如 图 5.3 “Ant下Checkstyle检查错误的结果” 所示。
Ant下Checkstyle检查错误的结果

图 5.3. Ant下Checkstyle检查错误的结果

本节结束,欢迎您把看明白本节所用的时间通过Email告诉我。因为我想知道标题中的 "N" 是多少。 :)谢谢。
5.2. 安装与配置

其实本节内容已经被包含在了 第 5.1 节 “N分钟极速入门” 中,就是拥有checkstyle-all-4.3.jar 这个文件,并且在 ant的配置文件中进行task声明,如:

<taskdef resource="checkstyletask.properties"
classpath="./lib/checkstyle-all-4.3.jar"/>


然后通过<checkstyle/>任务来运行。
5.3. 典型例子

本节假定使用checkstyle任务的前提条件都已满足。

使用my_check.xml文件,对src目录下的所有java文件进行检查:

<checkstyle config="config/my_check.xml">
<fileset dir="src" includes="**/*.java"/>
</checkstyle>


使用my_check.xml文件,对src目录下的所有java文件进行检查,并且把出错的信息分别写到两个文件中:ant_build目录下的 checkstyle_errors.txt 和checkstyle_errors.xml中:

<checkstyle config="config/my_check.xml">
<fileset dir="src" includes="**/*.java"/>
<formatter type="plain" toFile="ant_build/checkstyle_errors.txt"/>
<formatter type="xml" toFile="ant_build/checkstyle_errors.xml"/>
</checkstyle>


值得一提的是,xml格式的文件里面把错误的信息格式弄的很清晰,调试起来比较方便。如果需要的话可以比较方便的扩展到诸如cruisecontrol里。

使用定义了package的文件:

<checkstyle config="config/my_check.xml"
packageNamesFile="myPackageNames.xml"
file="src/test/SomeClass.java"/>


5.4. checkstyle任务的参数

checkstyle任务的参数如 表 5.1 “checkstyle任务属性表” 所示。

表 5.1. checkstyle任务属性表
名字 描述 是否必须

file


被检查的文件。


一个file或者fileset

config


Checkstyle的配置文件。配置文件的使用方法见:第 7.1 节 “如何配置检查”


config或configURL必具其一

configURL


指定了Checkstyle配置文件的URL。用法


config或configURL必具其一

properties


定义了ant使用到的属性的文件。


否

packageNamesFile


定义了Checkstyle配置文件中检查的package name的文件。


否

failOnViolation


有violation时是否继续检查,默认是"true"


否

failureProperty


The name of a property to set in the event of a violation.


否

maxErrors


停止build前允许出现的"Error"的最大数目。默认是"0"


否

maxWarnings


停止build前允许出现的"Warning"的最大数目。默认是"2147483647",也就是Integer.MAX_VALUE.


否

classpath


类路径,默认是当前使用的classpath。


否

classpathref


类路径的引用。


否
5.5. 可以嵌套的ant元素

checkstyle任务中可以前台以下元素: <filese>, <classpath>, <formatter> 以及<property>

formatter元素的属性如 表 5.2 “formatter元素的属性” 所示。

表 5.2. formatter元素的属性
名字 描述 是否必须

type


结果的输出方式,可用的值是:

plain :使用了 DefaultLogger

xml : 使用了XMLLogger

默认是 plain.


否

toFile


输出到的文件。默认是标准输出(控制台)


否

useFile


是否把结果输出到文件中。 true或false. 默认是"true"


否
第 6 章 在Eclipse中使用Checkstyle

目录

6.1. 下载和安装
6.2. 配置方法
6.3. 使用
6.4. 常见问题

6.1. 下载和安装

下载在Checkstyle的 Checkstyle主页 ,有一个插件列表。 截止到2008-02-26,Eclipse插件的可用的地址是:EclipseCS 和 Checkclipse

本节讲解的是后者,也就是Checkclipse。

Checkclipse安装的方法同其他的Eclipse插件一样。不清楚的朋友可以看这篇文章:Eclipse基础--使用links方式安装Eclipse插件 。links方式 适用于Eclipse3.0, 3.1, 3.2 和 Europa
6.2. 配置方法

当Checkclipse成功安装后,在"window->Preferences"中可以看到checkclipse的选项, 如 图 6.1 “成功安装Checkclipse后的Preferences窗口” 所示。
成功安装Checkclipse后的Preferences窗口

图 6.1. 成功安装Checkclipse后的Preferences窗口

Checkclipse有两个渠道可以进行配置,一个是全局的,一个是单个项目(Project)的。全局的可以在整个Eclipse的workbench中生效, 而单个项目的配置可以在指定的项目中生效,它优先于全局的配置。

对于单个项目:右键点某个项目,然后选择"Properties"就可以看到Checkclipse的窗口。在"Configuration"标签中,"Enable Checkstyle"一行前面打勾, 然后在"Checkstyle Configuration File:" 一行中选择你的Checkstyle配置文件就可以了。

如 图 6.2 “配置单个项目的Checkclipse” 所示。
配置单个项目的Checkclipse

图 6.2. 配置单个项目的Checkclipse

对于全局的设置:"window->preferences"就可以看到。设置方法跟单个项目的设置是一样的。

经过上面的设置,Checkclipse就可以使用了。如果你想设置需要被检查的文件名,那么就在"File Filter"标签中修改被包含的文件。可以使用"Add","Remove","Change"等按钮进行编辑。 Included Resources 中显示了被检查的文件清单。

如 图 6.3 “设置单个项目的Checkclipse的文件过滤器(file filter)” 所示。
设置单个项目的Checkclipse的文件过滤器(file filter)

图 6.3. 设置单个项目的Checkclipse的文件过滤器(file filter)
[小心] 注意

除非很有必要,否则不要改FileFilter。使用默认的就满足95%的情况。

官方帮助可以在Eclipse的"Help-> HelpeContents" 中的"Checkclipse - Checkstyle Plugin" 中找到。内容还是很详尽的。
6.3. 使用

Checkclipse的使用非常简单,它的每次检查是跟随Eclipse的"Build Project"一起进行的。如果有错误,会显示在"Problems"子窗口中。 另外,对于默认的检查,错误是Warning级的,对于设置了配置文件后的检查,错误都是Error级的。 看一下

 

Checkstyle中文文档(原创) checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档checkstyle 中文文档 立即下载

相关推荐

Checkstyle使用说明文档

中文版Checkstyle使用说明文档

checkstyle中文教程

Checkstyle4.3 中文手册 加入OpenDoc前的 预览版。 申 思维 1.0 版权 © 2008 申思维 本文根据Checkstyle4.3 英文官方文档而来。我打算发布成OpenDoc, 欢迎大家给我来信,多提意见!谢谢 目录 1. 前言 1. 介绍 1.1. 概述 1.2. 特点 1.3. 下载 2. N分

nicky的专栏 6216

Checkstyle5.5中文手册

Excel格式的Checkstyle5.5中文手册。

checkStyle 文档

  checkStyle 文档 &lt;!--[if !supportLists]--&gt;1.    &lt;!--[endif]--&gt;checkStyle简介 Checksytle 是一款代码格式检查工具。它可以根据设置好的编码规则来检查代码。比如符合规范的变量命名,良好的程序风格等等。如果你的项目经理开会时说,“我希望我们写出来的代码就象一个人写的!” 时,用Checks...

xuehanxin的专栏 410

中文提示版CheckStyle

中文提示版CheckStyle

checkstyle中文帮助文档

很全面的checkstyle中文帮助文档

checkstyle配置文件中英文对照

&lt;?xml version="1.0" encoding="GBK"?&gt; &lt;!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"&gt; &lt;!--

baiseda 241

checkStyle说明文档.pdf

CheckStyle安装、使用、配置 的整理文档, 关于checkStyle的所有配置选项的解释

(转)《Checkstyle4.3中文手册》草稿版

Checkstyle是非常优秀的代码规范检查软件,可以大幅的提高代码质量, 当项目的开发人员比较多时,用它来统一代码风格是很有必要的。 本文的写作,是由于公司的质量管理部门对代码格式进行了要求。 在网上也没有发现有比较详细全面的中文文档。所以参考Checkstyle4.3的官方文档写就。 有个比较神奇的20%-80%规律是这样说的:一本书,用的最多的只是20%的内容,它的出现几率是80%; 而剩下

luckykapok918的专栏 472

W5500+STM32F103C8T6进行TCP通信(modbus)

一路生花一、w5500资料二、modbus通信三、从机代码四、总结五、参考 一、w5500资料 w5500的资料就放在下面了,单纯的客户端和其他模式上面有教程 https://www.aliyundrive.com/s/enPnnZgNtpE 二、modbus通信 Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议 这里是Modbus TCP数据帧 公共功能码定义 三、从机代码

junseven164的博客 5777

win10 离线安装.Net Framework3.5

起因,安装软件比如3dmax2014等需要.Net Framework3.5支撑,那么需要安装低版本的.Net Framework3.5 闲话少说。 1.下载 NetFx3.cab 链接: https://pan.baidu.com/s/124to7F3BOy4yAlY61OjbDg 提取码: kixu 2.将NetFx3.cab 放入 系统盘的windows目录下(示例 C:\Wi...

m0_37615458的博客 7718

《Checkstyle4.3中文手册》草稿版,请大家多给意见!想加入OpenDoc.

想加入OpenDoc的草稿版,全文见附件,以下COPY自序言…… Checkstyle是非常优秀的代码规范检查软件,可以大幅的提高代码质量, 当项目的开发人员比较多时,用它来统一代码风格是很有必要的。 本文的写作,是由于公司的质量管理部门对代码格式进行了要求。 在网上也没有发现有比较详细全面的中文文档。所以参考Checkstyle4.3的官方文档写就。 有个比较神奇的20%-80...

sg552的专栏 140

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

Checkstyle中文手册

checkstyle相关信息可以去官网获取http://checkstyle.sourceforge.net/ 附件是Checkstyle_4.3_中文手册

DriftKing的专栏 305

Python气象雷达数据处理实战:用PyCINRAD从基数据到PPI图的完整流程

本文详细介绍了使用PyCINRAD库处理气象雷达基数据并生成PPI图的完整流程,涵盖环境配置、数据读取、反射率与速度数据提取、可视化优化等关键步骤。通过实战案例演示如何从原始雷达数据到专业级PPI图像生成,为气象研究和业务应用提供高效解决方案。

yog99的博客 758

PADS VX2.7学习记录06-PADS Router软件功能操作

PADS VX2.7学习记录06-PADS Router软件功能操作

qq_31444421的博客 7860

CheckStyle使用手册

http://darkranger.iteye.com/blog/657737 介绍  CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从 而使得开发人员从这项重要,但是枯燥的任务中解脱出来。  CheckStyle默认提供一下主要检查内容:    •Javadoc注释    •命名约定

355

TPM 2.0实例探索2 —— LUKS磁盘加密(1)

本文对LUKS行了系统介绍

phmatthaus的专栏 1699

svn结合checkStyle和svnchecker校验java8代码

在svn服务端校验java代码风格。使用checkStyle和svncheker插件做校验。依据阿里巴巴编码规范定义规则。支持java8的新语法。解决了多文件提交和中文乱码问题。

A11111AsUN的博客 797

VS Code下载安装与使用教程

VSCode下载安装与使用教程

weixin_46713695的博客 4万+

爬取Unsplash高清壁纸:Python爬虫实战教程(最新技术)

在当今数字化时代,高清壁纸已经成为人们个性化设备的重要元素。Unsplash作为全球最知名的免费高质量图片网站,汇集了数百万张由全球摄影师贡献的高清图片。然而,Unsplash官网的下载方式需要手动操作,对于需要批量下载壁纸的用户来说效率较低。本文将带你深入探索如何使用Python爬虫技术高效爬取Unsplash高清壁纸,从基础到进阶,全面掌握图片爬取的核心技术。Unsplash成立于2013年,是一个完全免费的图片分享平台。高质量内容:所有图片均由专业摄影师上传,分辨率普遍达到4K以上免费商用。

2201_76125261的博客 935

CheckStyle插件的使用

1、概述          Checksytle 是一款java代码格式检查工具,它可以根据设置好的编码规则来检查代码,有效的帮助我们养成良好的编码习惯 减少bad smell的产生。 比如 静态常量使用大写,成员变量以m开头、函数名不超过20个字等。 2、优点 提高代码的可读性、可维护性,降低沟通成本,提高工作效率。 通对IDE的

灵翼之光 1468

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

checkstyle中类的分散复杂度详解

属性 信息 文档名称 类的分散复杂度详解 版本号 V1.1.0.0 文档修改日志 修改时间 修改人 修改描述 版本号 2020-01-21 09:10 宋全恒 新建类的分散复杂度详解 V1.0.0.0 2020-03-10 15:22 宋全恒 加入checkstyle的安装 V1.1.0.0 1 简介 在使用checkstyle进行代码静态扫描时,有...

不当初 5098

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

代码规范工具-Checkstyle使用手册

现在很多开源工具都可以对代码进行规范审核,比较流行的有以下几款,大致给个简单介绍。      PMD:是一款采用BSD协议发布的Java程序代码检查工具,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。      FindBugs:是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。      Check

技术学习与分享 894

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AS 阿里巴巴Java开发规约 CheckStyle-IDEA

Alibaba Java Coding Guidelines 简介 github地址:https://github.com/alibaba/p3c  官方文档    阿里巴巴Java开发手册(纪念版).pdf     Alibaba Java Coding Guidelines 是阿里巴巴发布的基于 IDEA 的 Java 开发规约扫描插件。   经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会...

Pannahouse的博客 2786
上一篇: checkstyle 模板文件
下一篇: 从原理上解决Tomcat中文问题
topinking
博客等级 码龄20年 15粉丝 242原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值