Skip to content

Commit 914515b

Browse files
committed
fix:code check test
1 parent 48554eb commit 914515b

2 files changed

Lines changed: 506 additions & 0 deletions

File tree

app/codecheck/codecheck.xml

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
4+
5+
<!-- 指定检查的类和方法命名规则 -->
6+
<module name="Checker">
7+
<property name="charset" value="UTF-8"/>
8+
<property name="severity" value="warning"/>
9+
10+
<!-- Checks for Size Violations. -->
11+
<!-- 检查文件的长度(行) default max=2000 -->
12+
<module name="FileLength">
13+
<property name="max" value="2500"/>
14+
</module>
15+
<!-- 设定代码格式规则 -->
16+
<module name="TreeWalker">
17+
<!-- Checks for imports -->
18+
<!-- 必须导入类的完整路径,即不能使用*导入所需的类 -->
19+
<module name="AvoidStarImport"/>
20+
21+
<!-- 检查是否从非法的包中导入了类 illegalPkgs: 定义非法的包名称-->
22+
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
23+
24+
<!-- 检查是否导入了不必显示导入的类-->
25+
<module name="RedundantImport"/>
26+
27+
<!-- 检查是否导入的包没有使用-->
28+
<module name="UnusedImports"/>
29+
30+
<!-- 检查类和接口的javadoc 默认不检查author 和version tags
31+
authorFormat: 检查author标签的格式
32+
versionFormat: 检查version标签的格式
33+
scope: 可以检查的类的范围,例如:public只能检查public修饰的类,private可以检查所有的类
34+
excludeScope: 不能检查的类的范围,例如:public,public的类将不被检查,但访问权限小于public的类仍然会检查,其他的权限以此类推
35+
tokens: 该属性适用的类型,例如:CLASS_DEF,INTERFACE_DEF -->
36+
<module name="JavadocType">
37+
<property name="scope" value="protected"/>
38+
<property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
39+
</module>
40+
41+
<!-- 检查方法的javadoc的注释
42+
scope: 可以检查的方法的范围,例如:public只能检查public修饰的方法,private可以检查所有的方法
43+
allowMissingParamTags: 是否忽略对参数注释的检查
44+
allowMissingThrowsTags: 是否忽略对throws注释的检查
45+
allowMissingReturnTag: 是否忽略对return注释的检查 -->
46+
<module name="JavadocMethod">
47+
<property name="allowMissingParamTags" value="true"/>
48+
<property name="allowMissingReturnTag" value="false"/>
49+
<property name="tokens" value="METHOD_DEF"/>
50+
</module>
51+
<!--option: 定义左大括号'{'显示位置,eol在同一行显示,nl在下一行显示
52+
maxLineLength: 大括号'{'所在行行最多容纳的字符数
53+
tokens: 该属性适用的类型,例:CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF -->
54+
<module name="LeftCurly">
55+
<property name="option" value="eol"/>
56+
</module>
57+
58+
<!-- 检查 else、try 和 catch 关键字后的右大括号 (}) 放置位置。验证的规则通过 option 属性指定。
59+
option: 右大括号是否单独一行显示
60+
tokens: 定义要检查的类型
61+
<module name="RightCurly">
62+
<property name="option" value="alone"/>
63+
</module> -->
64+
65+
<!-- 检查在重写了 `equals` 方法后是否重写了 `hashCode` 方法 -->
66+
<module name="EqualsHashCode"/>
67+
68+
<!-- 检查非法实例化,建议使用工厂方法。
69+
原因:根据项目需求,对于某些类,通过工厂方法来创建实例可能比直接调用构造函数更为优选。
70+
一个简单的例子是 `java.lang.Boolean` 类。为了节省内存和 CPU 循环,优先使用预定义常量 `TRUE` 和 `FALSE`。应将构造函数调用替换为 `Boolean.valueOf()` 方法的调用。
71+
一些对性能非常敏感的项目可能也要求为其他类使用工厂方法,以强制使用数字缓存或对象池。 -->
72+
<module name="IllegalInstantiation">
73+
<property name="classes" value="java.lang.Boolean"/>
74+
</module>
75+
76+
<!-- 检查命名规范 -->
77+
<!-- 本地的 final 变量,包括 catch 参数 -->
78+
<module name="LocalFinalVariableName"/>
79+
80+
<!-- 静态的非 final 字段 -->
81+
<module name="StaticVariableName">
82+
<property name="format" value="(^[A-Z0-9_]{0,19}$)"/>
83+
</module>
84+
85+
<!-- 包名 -->
86+
<module name="PackageName">
87+
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
88+
</module>
89+
<!-- 类名应该大写并采用驼峰命名法 -->
90+
<module name="TypeName"/>
91+
92+
<!-- 方法名应该采用驼峰命名法 -->
93+
<module name="MethodName"/>
94+
95+
<!-- 变量名采用小写字母并使用下划线分隔 -->
96+
<module name="LocalVariableName">
97+
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
98+
</module>
99+
100+
<!-- 常量名全大写并使用下划线分隔 -->
101+
<!-- <module name="FieldName">-->
102+
<!-- <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>-->
103+
<!-- <property name="allowMultiple" value="false"/>-->
104+
<!-- </module>-->
105+
106+
<!-- 检查类的继承结构是否符合规范 -->
107+
<module name="AbstractClassName"/>
108+
109+
<!-- 配置 Indentation 模块 -->
110+
<module name="Indentation"/>
111+
112+
<!-- 每个方法后必须有空行 -->
113+
<module name="MethodParamPad"/>
114+
115+
<!-- 强制使用强制括号 -->
116+
<module name="NeedBraces"/>
117+
118+
<!-- 禁止在代码中使用多余的空格 -->
119+
<module name="WhitespaceAfter"/>
120+
121+
<!--检查switch中case后是否加入了跳出语句,例如:return、break、throw、continue -->
122+
<module name="FallThrough"/>
123+
124+
<!-- 检查方法或构造函数的参数数量,默认最大为7个。 -->
125+
<module name="ParameterNumber">
126+
<property name="max" value="5"/>
127+
</module>
128+
<!-- 非静态字段 -->
129+
<module name="MemberName">
130+
<property name="format" value="(^[a-z][a-z0-9][a-zA-Z0-9]{0,19}$)"/>
131+
</module>
132+
133+
<!-- 参数 -->
134+
<module name="ParameterName">
135+
<property name="format" value="(^[a-z][a-zA-Z0-9_]{0,19}$)"/>
136+
</module>
137+
138+
<!-- 常量(静态 final 字段) -->
139+
<module name="ConstantName">
140+
<property name="format" value="(^[A-Z0-9_]{0,19}$)"/>
141+
</module>
142+
143+
<!-- 检查布尔表达式是否可以简化。 -->
144+
<module name="SimplifyBooleanExpression"/>
145+
146+
<!-- 检查是否存在过度复杂的布尔返回值。例如,以下代码
147+
if (valid())
148+
return false;
149+
else
150+
return true;
151+
可以简化为
152+
return !valid(); -->
153+
<module name="SimplifyBooleanReturn"/>
154+
<!-- 检查类成员的可见性。只有 static final 修饰的成员可以是 public 的;其他的成员属性必须是 private 的,除非属性 protectedAllowed 或者 packageAllowed 被设置为 true。
155+
如果公共成员的名称匹配公共成员正则表达式(默认包含 "^serialVersionUID$"),则不会标记为违规。
156+
注意:Checkstyle 2 之前的默认模式包括了 "^f[A-Z][a-zA-Z0-9]*$",允许 EJB 1.1 的 CMP 使用默认设置。
157+
对于 EJB 2.0,不再需要为持久字段提供公共访问权限,因此默认模式已被更改。
158+
理由:强制封装。-->
159+
<module name="VisibilityModifier"/>
160+
161+
<!-- 每一行只能定义一个变量 -->
162+
<module name="MultipleVariableDeclarations">
163+
</module>
164+
165+
<!-- 检查数组类型定义的风格。有些采用 Java 风格,例如:public static void main(String[] args),有些采用 C 风格,例如:public static void main(String args[])
166+
检查定义数组时采用 Java 风格还是 C 风格,例如:int[] num 是 Java 风格,int num[] 是 C 风格。默认是 Java 风格 -->
167+
<module name="ArrayTypeStyle">
168+
</module>
169+
170+
<!-- 检查是否存在 "魔法数字",魔法数字是没有定义为常量的数值字面量。默认情况下,-1、0、1 和 2 不被视为魔法数字。
171+
<module name="MagicNumber">
172+
</module>
173+
-->
174+
175+
<!-- 检查是否存在 TODO(待处理)注释。实际上,这是对 Java 注释的通用正则表达式匹配器。要检查 Java 注释中的其他模式,请设置属性 format。
176+
检查是否存在 TODO(待处理)注释。TODO 是 Java IDE 自动生成的,代码写完后通常会去掉。-->
177+
<module name="TodoComment"/>
178+
179+
<!-- 检查 long 类型常量是否使用大写的 'L' 来表示,而不是小写的 'l'。这是遵循 Java 语言规范,第 3.10.1 节。
180+
检查 long 类型常量是否定义了大写的 'L'。字母小写的 l 与数字 1(或者一)非常相似。 -->
181+
<module name="UpperEll"/>
182+
183+
<!-- 检查一个只有私有构造器的类是否声明为 final。只有私有构造器的类必须声明为 final -->
184+
<module name="FinalClass"/>
185+
186+
<!-- 检查方法和构造函数是否过长。默认最大行数为 150 行。可以通过设置 max=300 来调整最大行数为 300。 -->
187+
<module name="MethodLength">
188+
<property name="max" value="300"/>
189+
</module>
190+
191+
<!-- ModifierOrder 检查修饰符的顺序,默认是 public,protected,private,abstract,static,final,transient,volatile,synchronized,native -->
192+
<module name="ModifierOrder">
193+
</module>
194+
195+
<!-- 检查是否有多余的修饰符,例如:接口中的方法不必使用public、abstract修饰 -->
196+
<module name="RedundantModifier">
197+
</module>
198+
199+
<!--- 字符串比较必须使用 equals() -->
200+
<module name="StringLiteralEquality">
201+
</module>
202+
203+
<!-- if-else嵌套语句个数 最多4层 -->
204+
<module name="NestedIfDepth">
205+
<property name="max" value="3"/>
206+
</module>
207+
<module name="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck"/>
208+
209+
210+
211+
<!-- try-catch 嵌套语句个数 最多2层 -->
212+
<module name="NestedTryDepth">
213+
<property name="max" value="2"/>
214+
</module>
215+
216+
<!-- 返回个数 -->
217+
<module name="ReturnCount">
218+
<property name="max" value="5"/>
219+
<property name="format" value="^$"/>
220+
</module>
221+
222+
<module name="WhitespaceAround"/>
223+
<module name="WhitespaceAfter"/>
224+
<module name="NoWhitespaceBefore"/>
225+
<module name="Indentation">
226+
<property name="basicOffset" value="4"/>
227+
<property name="braceAdjustment" value="0"/>
228+
<property name="caseIndent" value="4"/>
229+
<property name="lineWrappingIndentation" value="8"/>
230+
</module>
231+
232+
<!-- Miscellaneous -->
233+
<module name="TodoComment"/>
234+
<module name="UpperEll"/>
235+
<module name="MagicNumber">
236+
<property name="ignoreNumbers" value="-1,0,1,2"/>
237+
</module>
238+
<module name="IllegalInstantiation">
239+
<property name="classes" value="java.lang.Boolean,java.lang.Integer"/>
240+
</module>
241+
<module name="StringLiteralEquality"/>
242+
<module name="MultipleVariableDeclarations"/>
243+
<module name="ArrayTypeStyle"/>
244+
</module>
245+
246+
<!-- LineLength 配置独立于 TreeWalker -->
247+
<module name="LineLength">
248+
<property name="max" value="120"/>
249+
<property name="ignorePattern" value="^package|^import"/>
250+
</module>
251+
252+
253+
</module>

0 commit comments

Comments
 (0)