1
<?xml version="1.0"?>
2
<!DOCTYPE module PUBLIC
3
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
4
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
5
6
<!--
7
8
Checkstyle configuration that checks the sun coding conventions from:
9
10
- the Java Language Specification at
11
http://java.sun.com/docs/books/jls/second_edition/html/index.html
12
13
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
14
15
- the Javadoc guidelines at
16
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
17
18
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
19
20
- some best practices
21
22
Checkstyle is very configurable. Be sure to read the documentation at
23
http://checkstyle.sf.net (or in your downloaded distribution).
24
25
Most Checks are configurable, be sure to consult the documentation.
26
27
To completely disable a check, just comment it out or delete it from the file.
28
29
Finally, it is worth reading the documentation.
30
31
-->
32
33
<module
name="Checker">
34
<!--
35
重复代码的检查,超过8行就认为重复,UTF-8格式 本检查一定要放在"TreeWalker"节点前,否则在
36
Checkclipse中会无法使用。(在ant下可以)
37
-->
38
<module name="StrictDuplicateCode">
39
<property name="min" value="8"
/>
40
<property name="charset" value="UTF-8"
/>
41
</module>
42
<module name="TreeWalker">
43
<!-- javadoc的检查
-->
44
<!-- 检查所有的interface和class
-->
45
<module name="JavadocType"
/>
46
<!-- 检查所有方法的javadoc,可以不声明RuntimeException
-->
47
<module name="JavadocMethod">
48
<property name="allowUndeclaredRTE" value="true"
/>
49
</module>
50
<!-- 检查某个变量的javadoc
-->
51
<module name="JavadocVariable"
/>
52
<!-- 命名方面的检查,它们都使用了Sun官方定的规则。
-->
53
<!-- 类名(class 或interface) 的检查
-->
54
<module name="TypeName"
/>
55
<!-- 变量的检查
-->
56
<module name="MemberName"
/>
57
<!-- 方法名的检查
-->
58
<module name="MethodName"
/>
59
<!-- 方法的参数名
-->
60
<module name="ParameterName "
/>
61
<!-- 常量名的检查
-->
62
<module name="ConstantName"
/>
63
<!-- 长度方面的检查
-->
64
<!-- 文件长度不超过1500行
-->
65
<module name="FileLength">
66
<property name="max" value="1500"
/>
67
</module>
68
<!-- 每行不超过120个字-->
69
<module name="LineLength">
70
<property name="max" value="120"
/>
71
</module>
72
<!-- 方法不超过30行
-->
73
<module name="MethodLength">
74
<property name="tokens" value="METHOD_DEF"
/>
75
<property name="max" value="30"
/>
76
</module>
77
<!-- 方法的参数个数不超过3个。
-->
78
<module name="ParameterNumber">
79
<property name="max" value="3"
/>
80
</module>
81
<!-- 多余的关键字
-->
82
<module name="RedundantModifier"
/>
83
<!-- 对区域的检查
-->
84
<!-- 不能出现空白区域
-->
85
<module name="EmptyBlock"
/>
86
<!-- 所有区域都要使用大括号。
-->
87
<module name="NeedBraces"
/>
88
<!-- 多余的括号
-->
89
<module name="AvoidNestedBlocks">
90
<property name="allowInSwitchCase" value="true"
/>
91
</module>
92
<!-- 编码方面的检查
-->
93
<!-- 不许出现空语句
-->
94
<module name="EmptyStatement"
/>
95
<!-- 每个类都实现了equals()和hashCode()
-->
96
<module name="EqualsHashCode"
/>
97
<!-- 不许使用switch
-->
98
<module name="IllegalToken">
99
<property name="tokens" value="LITERAL_SWITCH"
/>
100
</module>
101
<!-- 不许内部赋值
-->
102
<module name="InnerAssignment"
/>
103
<!-- 绝对不能容忍魔法数
-->
104
<module name="MagicNumber"
/>
105
<!-- 循环控制变量不能被修改
-->
106
<module name="ModifiedControlVariable"
/>
107
<!-- 多余的throw
-->
108
<module name="RedundantThrows"
/>
109
<!-- 不许使用未被简化的条件表达式
-->
110
<module name="SimplifyBooleanExpression"
/>
111
<!-- 不许使用未被简化的布尔返回值
-->
112
<module name="SimplifyBooleanReturn"
/>
113
<!-- String的比较不能用!= 和 ==
-->
114
<module name="StringLiteralEquality"
/>
115
<!-- if最多嵌套3层
-->
116
<module name="NestedIfDepth">
117
<property name="max" value="3"
/>
118
</module>
119
<!-- try最多被嵌套1层
-->
120
<module name="NestedTryDepth"
/>
121
<!-- clone方法必须调用了super.clone()
-->
122
<module name="SuperClone"
/>
123
<!-- finalize 必须调用了super.finalize()
-->
124
<module name="SuperFinalize"
/>
125
<!-- 不能catch java.lang.Exception
-->
126
<module name="IllegalCatch">
127
<property name="illegalClassNames" value="java.lang.Exception"
/>
128
</module>
129
<!-- JUnitTestCase 的核心方法存在。
-->
130
<module name="JUnitTestCase"
/>
131
<!-- 一个方法中最多有3个return
-->
132
<module name="ReturnCount">
133
<property name="max" value="3"
/>
134
</module>
135
<!-- 不许对方法的参数赋值
-->
136
<module name="ParameterAssignment"
/>
137
<!-- 不许有同样内容的String
-->
138
<module name="MultipleStringLiterals"
/>
139
<!-- 同一行不能有多个声明
-->
140
<module name="MultipleVariableDeclarations"
/>
141
<!-- 各种量度 -->
142
<!-- 布尔表达式的复杂度,不超过3
-->
143
<module name="BooleanExpressionComplexity"
/>
144
<!-- 类数据的抽象耦合,不超过7
-->
145
<module name="ClassDataAbstractionCoupling"
/>
146
<!-- 类的分散复杂度,不超过20
-->
147
<module name="ClassFanOutComplexity"
/>
148
<!-- 函数的分支复杂度,不超过10
-->
149
<module name="CyclomaticComplexity"
/>
150
<!-- NPath复杂度,不超过200
-->
151
<module name="NPathComplexity"
/>
152
<!-- 杂项 -->
153
<!-- 禁止使用System.out.println
-->
154
<module name="GenericIllegalRegexp">
155
<property name="format" value="System\.out\.println"
/>
156
<property name="ignoreComments" value="true"
/>
157
</module>
158
<!-- 不许使用与代
<?xml version="1.0"?>2
<!DOCTYPE module PUBLIC3
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"4
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">5

6
<!--7

8
Checkstyle configuration that checks the sun coding conventions from:9

10
- the Java Language Specification at11
http://java.sun.com/docs/books/jls/second_edition/html/index.html12

13
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/14

15
- the Javadoc guidelines at16
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html17

18
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html19

20
- some best practices21

22
Checkstyle is very configurable. Be sure to read the documentation at23
http://checkstyle.sf.net (or in your downloaded distribution).24

25
Most Checks are configurable, be sure to consult the documentation.26

27
To completely disable a check, just comment it out or delete it from the file.28

29
Finally, it is worth reading the documentation.30

31
-->32

33
<module
name="Checker">34
<!--35
重复代码的检查,超过8行就认为重复,UTF-8格式 本检查一定要放在"TreeWalker"节点前,否则在36
Checkclipse中会无法使用。(在ant下可以)37
-->38
<module name="StrictDuplicateCode">39
<property name="min" value="8"
/>40
<property name="charset" value="UTF-8"
/>41
</module>42
<module name="TreeWalker">43
<!-- javadoc的检查
-->44
<!-- 检查所有的interface和class
-->45
<module name="JavadocType"
/>46
<!-- 检查所有方法的javadoc,可以不声明RuntimeException
-->47
<module name="JavadocMethod">48
<property name="allowUndeclaredRTE" value="true"
/>49
</module>50
<!-- 检查某个变量的javadoc
-->51
<module name="JavadocVariable"
/>52
<!-- 命名方面的检查,它们都使用了Sun官方定的规则。
-->53
<!-- 类名(class 或interface) 的检查
-->54
<module name="TypeName"
/>55
<!-- 变量的检查
-->56
<module name="MemberName"
/>57
<!-- 方法名的检查
-->58
<module name="MethodName"
/>59
<!-- 方法的参数名
-->60
<module name="ParameterName "
/>61
<!-- 常量名的检查
-->62
<module name="ConstantName"
/>63
<!-- 长度方面的检查
-->64
<!-- 文件长度不超过1500行
-->65
<module name="FileLength">66
<property name="max" value="1500"
/>67
</module>68
<!-- 每行不超过120个字-->69
<module name="LineLength">70
<property name="max" value="120"
/>71
</module>72
<!-- 方法不超过30行
-->73
<module name="MethodLength">74
<property name="tokens" value="METHOD_DEF"
/>75
<property name="max" value="30"
/>76
</module>77
<!-- 方法的参数个数不超过3个。
-->78
<module name="ParameterNumber">79
<property name="max" value="3"
/>80
</module>81
<!-- 多余的关键字
-->82
<module name="RedundantModifier"
/>83
<!-- 对区域的检查
-->84
<!-- 不能出现空白区域
-->85
<module name="EmptyBlock"
/>86
<!-- 所有区域都要使用大括号。
-->87
<module name="NeedBraces"
/>88
<!-- 多余的括号
-->89
<module name="AvoidNestedBlocks">90
<property name="allowInSwitchCase" value="true"
/>91
</module>92
<!-- 编码方面的检查
-->93
<!-- 不许出现空语句
-->94
<module name="EmptyStatement"
/>95
<!-- 每个类都实现了equals()和hashCode()
-->96
<module name="EqualsHashCode"
/>97
<!-- 不许使用switch
-->98
<module name="IllegalToken">99
<property name="tokens" value="LITERAL_SWITCH"
/>100
</module>101
<!-- 不许内部赋值
-->102
<module name="InnerAssignment"
/>103
<!-- 绝对不能容忍魔法数
-->104
<module name="MagicNumber"
/>105
<!-- 循环控制变量不能被修改
-->106
<module name="ModifiedControlVariable"
/>107
<!-- 多余的throw
-->108
<module name="RedundantThrows"
/>109
<!-- 不许使用未被简化的条件表达式
-->110
<module name="SimplifyBooleanExpression"
/>111
<!-- 不许使用未被简化的布尔返回值
-->112
<module name="SimplifyBooleanReturn"
/>113
<!-- String的比较不能用!= 和 ==
-->114
<module name="StringLiteralEquality"
/>115
<!-- if最多嵌套3层
-->116
<module name="NestedIfDepth">117
<property name="max" value="3"
/>118
</module>119
<!-- try最多被嵌套1层
-->120
<module name="NestedTryDepth"
/>121
<!-- clone方法必须调用了super.clone()
-->122
<module name="SuperClone"
/>123
<!-- finalize 必须调用了super.finalize()
-->124
<module name="SuperFinalize"
/>125
<!-- 不能catch java.lang.Exception
-->126
<module name="IllegalCatch">127
<property name="illegalClassNames" value="java.lang.Exception"
/>128
</module>129
<!-- JUnitTestCase 的核心方法存在。
-->130
<module name="JUnitTestCase"
/>131
<!-- 一个方法中最多有3个return
-->132
<module name="ReturnCount">133
<property name="max" value="3"
/>134
</module>135
<!-- 不许对方法的参数赋值
-->136
<module name="ParameterAssignment"
/>137
<!-- 不许有同样内容的String
-->138
<module name="MultipleStringLiterals"
/>139
<!-- 同一行不能有多个声明
-->140
<module name="MultipleVariableDeclarations"
/>141
<!-- 各种量度 -->142
<!-- 布尔表达式的复杂度,不超过3
-->143
<module name="BooleanExpressionComplexity"
/>144
<!-- 类数据的抽象耦合,不超过7
-->145
<module name="ClassDataAbstractionCoupling"
/>146
<!-- 类的分散复杂度,不超过20
-->147
<module name="ClassFanOutComplexity"
/>148
<!-- 函数的分支复杂度,不超过10
-->149
<module name="CyclomaticComplexity"
/>150
<!-- NPath复杂度,不超过200
-->151
<module name="NPathComplexity"
/>152
<!-- 杂项 -->153
<!-- 禁止使用System.out.println
-->154
<module name="GenericIllegalRegexp">155
<property name="format" value="System\.out\.println"
/>156
<property name="ignoreComments" value="true"
/>157
</module>158
<!-- 不许使用与代
本文详细介绍了Java编码规范及Checkstyle配置,包括代码重复检查、文档注释检查、命名规则、文件长度限制、行长度限制、方法长度限制、参数数量限制、关键字使用、区域检查、编码检查等。
3142

被折叠的 条评论
为什么被折叠?



