gz-oarms/checkstyle-v1.0.xml

146 lines
5.8 KiB
XML
Raw Normal View History

2026-05-06 16:31:24 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!-- checker检查器,checkstyle固定配置写法,不能缺失 -->
<module name="Checker">
<!--排除指定文件-->
<!-- <module name="BeforeExecutionExclusionFileFilter">-->
<!-- <property name="fileNamePattern" value="(FoodTrWebinfoReport.java|IssueApplyQuery.java)"/>-->
<!-- </module>-->
<!-- 设置checkstyle以UTF8格式进行文件检查 -->
<property name="charset" value="UTF-8"/>
<!--定义严重程度,可选等级:ignore info warning error,如不定义默认为error -->
<property name="severity" value="error"/>
<!-- 检查文件的长度最多2000行-->
<module name="FileLength">
<property name="max" value="2000"/>
</module>
<!--检查**.properties配置文件 是否有相同的key值 -->
<module name="Translation">
<property name="severity" value="error"/>
</module>
<!-- 检查每行字符数 -->
<module name="LineLength">
<property name="max" value="200"/>
</module>
<!-- 语法树编辑器,会根据其中定义规则,检查每个.java文件 -->
<module name="TreeWalker">
<!-- 检查多余的导入,如一个类导入了多次-->
<module name="RedundantImport"/>
<!-- 检查是否导入的包没有使用,如导入的包在类中没有被使用-->
<module name="UnusedImports"/>
<!-- 检查局部常量命名规范,有默认规则"^[a-z][a-zA-Z0-9]*$",可自定义" -->
<module name="LocalFinalVariableName"/>
<!-- 检查局部变量命名规范,有默认规则"^[a-z][a-zA-Z0-9]*$,可自定义,如for(int i=0;i<5;i++)里面的i -->
<module name="LocalVariableName"/>
<!-- 检查非final的静态变量,有默认规则"^[a-z][a-zA-Z0-9]*$",可自定义-->
<module name="StaticVariableName">
<property name="format" value="(^[A-Z0-9_]{0,19}$)"/>
</module>
<!-- 检查包名称命名规范,有默认规则"^[a-z]+(\.[a-z][a-z0-9]*)*$",详细解释为第一位必须为小写字母,后面位数可出现"."和小写字母/大写字母/数字 -->
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
</module>
<!-- 类名命名规则 -->
<module name="TypeName">
<property name="format" value="(^[A-Z][a-zA-Z0-9]{0,30}$)"/>
</module>
<!-- 方法名命名规则 -->
<module name="MethodName">
<property name="format" value="(^[a-z][a-zA-Z0-9]{0,30}$)"/>
</module>
<!-- 实例变量/成员变量命名规则 -->
<module name="MemberName">
<property name="format" value="(^[a-z][a-zA-Z0-9]{0,30}$)"/>
</module>
<!-- 方法中的参数名命名规则 -->
<module name="ParameterName">
<property name="format" value="(^[a-z][a-zA-Z0-9_]{0,19}$)"/>
</module>
<!-- 静态常量命名规则 -->
<module name="ConstantName">
<property name="format" value="(^[A-Z][A-Z0-9_]{0,50}$)"/>
</module>
<!-- 检测代码缩进规则,默认值为4字节 -->
<module name="Indentation">
</module>
<!-- 检查是否存在过度复杂的boolean返回值,例: if(b) {return true;} else {return false;}-->
<module name="SimplifyBooleanReturn"/>
<!-- 确保Utils类只包含静态方法或属性(字段)的类中没有public构造器。-->
<module name="HideUtilityClassConstructor"/>
<!-- 检查class成员属性可见性只有static final 修饰的成员是可以public的其他的成员属性必需是private的 -->
<module name="VisibilityModifier"/>
<!-- 检查每个变量声明是不是在其自己的语句中及自己的行上 -->
<module name="MultipleVariableDeclarations">
</module>
<!-- 检查再定义数组时采用java风格还是c风格例如int[] num是java风格int num[]是c风格。默认是java风格-->
<module name="ArrayTypeStyle">
</module>
<!-- 检查是否是"MagicNumber",指的是未定义的数字文本,但默认情况-1/0/1/2不视为"MagicNumber" -->
<!-- <module name="MagicNumber">-->
<!-- </module>-->
<!-- 检查是否在long类型是否定义了大写的L.字母小写l和数字1很相似 -->
<module name="UpperEll"/>
<!-- 检查switch语句是否有 default从句 -->
<module name="MissingSwitchDefault"/>
<!--检查switch中case后是否加入了跳出语句例如return、break、throw、continue -->
<module name="FallThrough"/>
<!-- 检查方法或构造函数中的参数数量-->
<module name="ParameterNumber">
<property name="max" value="7"/>
</module>
<!-- 检查方法长度忽略空行和注释最大上限为300 -->
<module name="MethodLength">
<property name="max" value="300"/>
<property name="countEmpty" value="false"/>
</module>
<!-- 检查是否有多余的修饰符例如接口中的方法不必使用public、abstract修饰 -->
<module name="RedundantModifier">
</module>
<!--- 字符串比较必须使用 equals() -->
<module name="StringLiteralEquality">
</module>
<!-- if-else嵌套语句个数最多为10层 -->
<module name="NestedIfDepth">
<property name="max" value="10"/>
</module>
<!-- try-catch 嵌套语句个数 最多3层 -->
<module name="NestedTryDepth">
<property name="max" value="3"/>
</module>
</module>
</module>