checkstyle.xml
4.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<!-- 基本配置 -->
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java"/>
<!-- 编码检查 -->
<module name="NewlineAtEndOfFile"/>
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="1"/>
<property name="maximum" value="unbounded"/>
<property name="message" value="Line has trailing spaces."/>
</module>
<!-- 文件长度和结构检查 -->
<module name="LineLength">
<property name="max" value="120"/>
<property name="ignorePattern" value="^package.*|^import.*|^@.*|.*http://.*|.*https://.*"/>
</module>
<!-- Java代码检查 -->
<module name="TreeWalker">
<!-- 命名规范 -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName">
<property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>
</module>
<!-- 代码结构 -->
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_DO"/>
</module>
<module name="LeftCurly"/>
<module name="RightCurly"/>
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndentation" value="4"/>
<property name="throwsIndentation" value="4"/>
<property name="lineWrappingIndentation" value="8"/>
</module>
<!-- 变量和方法 -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/>
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<module name="ArrayTypeStyle"/>
<module name="UpperEll"/>
<!-- 代码质量 -->
<module name="EqualsHashCode"/>
<module name="StringLiteralEquality"/>
<module name="CovariantEquals"/>
<module name="OverloadMethodsDeclarationOrder"/>
<module name="ParameterAssignment"/>
<module name="FinalParameters">
<property name="tokens" value="METHOD_DEF, CTOR_DEF, LITERAL_CATCH"/>
</module>
<!-- 注释相关 -->
<module name="JavadocType">
<property name="scope" value="public"/>
</module>
<module name="JavadocMethod">
<property name="scope" value="public"/>
<property name="allowMissingThrowsTags" value="true"/>
</module>
<module name="JavadocVariable">
<property name="scope" value="public"/>
<property name="tokens" value="VARIABLE_DEF, ENUM_CONSTANT_DEF"/>
</module>
<!-- 控制流 -->
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<module name="CyclomaticComplexity">
<property name="max" value="10"/>
</module>
<!-- 其他规则 -->
<module name="MissingDeprecated"/>
<module name="MissingOverride"/>
<module name="MultipleVariableDeclarations"/>
<module name="FallThrough"/>
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000"/>
<property name="ignoreAnnotation" value="true"/>
</module>
<module name="ModifierOrder"/>
</module>
</module>