<?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> <module name="Checker"> <!--<property name="severity" value="warning"/>--> <!-- Checks whether files end with a new line. --> <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> <module name="NewlineAtEndOfFile"/> <!-- Checks that property files contain the same keys. --> <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> <module name="Translation"/> <!-- 禁止使用System.out.println --> <module name="RegexpMultiline"> <property name="format" value="System\.(out)|(err)\.print(ln)?\("/> </module> <!-- 长度方面的检查 --> <!-- 文件长度不超过1500行 默认2000 --> <module name="FileLength"> <property name="max" value="1500" /> </module> <module name="TreeWalker"> <!-- javadoc的检查 --> <!-- 检查所有的interface和class --> <!-- See http://checkstyle.sf.net/config_javadoc.html --> <module name="JavadocMethod"> <property name="allowMissingParamTags" value="true"/> <property name="allowMissingPropertyJavadoc" value="true"/> <property name="allowMissingJavadoc" value="true"/> <property name="scope" value="public"/> <property name="excludeScope" value="public"/> </module> <module name="JavadocType"> <property name="allowMissingParamTags" value="true"/> <property name="scope" value="public"/> <property name="excludeScope" value="package"/> </module> <module name="JavadocVariable"> <property name="scope" value="public"/> <property name="excludeScope" value="package"/> </module> <module name="JavadocStyle"> <property name="checkFirstSentence" value="false"/> <property name="checkHtml" value="false"/> </module> <!-- 命名方面的检查 --> <!-- 局部的final变量,包括catch中的参数的检查 --> <module name="LocalFinalVariableName" /> <!-- 局部的非final型的变量,包括catch中的参数的检查 --> <module name="LocalVariableName" /> <!-- 包名的检查(只允许小写字母) --> <module name="PackageName"> <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" /> </module> <!-- 仅仅是static型的变量(不包括static final型)的检查 --> <module name="StaticVariableName" /> <!-- 类型(Class或Interface)名的检查 --> <module name="TypeName" /> <!-- 非static型变量的检查 --> <module name="MemberName" /> <!-- 方法名的检查 --> <module name="MethodName" /> <!-- 方法的参数名 --> <module name="ParameterName " /> <!-- 常量名的检查 --> <module name="ConstantName" /> <!-- 没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import 与该类在同一个package的 --> <module name="UnusedImports" /> <module name="AvoidStarImport"/> <module name="IllegalImport"/> <!-- defaults to sun.* packages --> <module name="RedundantImport"/> <!-- 每行不超过120个字--> <module name="LineLength"> <property name="max" value="120" /> </module> <!-- 方法不超过150行 --> <module name="MethodLength"> <property name="tokens" value="METHOD_DEF" /> <property name="max" value="150" /> </module> <!-- 方法的参数个数不超过5个。 并且不对构造方法进行检查--> <module name="ParameterNumber"> <property name="max" value="5" /> <property name="tokens" value="METHOD_DEF" /> </module> <!-- 空格检查 --> <!-- 允许方法名后紧跟左边圆括号"(" --> <module name="MethodParamPad" /> <!-- 在类型转换时,不允许左圆括号右边有空格,也不允许与右圆括号左边有空格 --> <module name="TypecastParenPad" /> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="EmptyForIteratorPad"/> <module name="OperatorWrap"/> <module name="ParenPad"/> <!-- 关键字 --> <!-- 每个关键字都有正确的出现顺序。比如 public static final XXX 是对一个常量的声明。如果使用 static public final 就是错误的 --> <module name="ModifierOrder" /> <!-- 多余的关键字 --> <!--<module name="RedundantModifier" />--> <!-- 对区域的检查 --> <!-- 不能出现空白区域 --> <module name="EmptyBlock" /> <!-- 所有区域都要使用大括号 --> <module name="NeedBraces" /> <!-- 多余的括号 --> <module name="AvoidNestedBlocks"> <property name="allowInSwitchCase" value="true" /> </module> <!-- 编码方面的检查 --> <!-- 不许出现空语句 --> <module name="EmptyStatement" /> <!-- 不允许魔法数 --> <module name="MagicNumber"/> <!-- 多余的throw --> <module name="RedundantThrows" /> <!-- String的比较不能用!= 和 == --> <module name="StringLiteralEquality" /> <!-- if最多嵌套3层 --> <module name="NestedIfDepth"> <property name="max" value="3" /> </module> <!-- try最多被嵌套2层 --> <module name="NestedTryDepth"> <property name="max" value="2" /> </module> <!-- 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> <!-- 确保一个类有package声明 --> <module name="PackageDeclaration" /> <!-- 一个方法中最多有3个return --> <module name="ReturnCount"> <property name="max" value="3" /> <property name="format" value="^$" /> </module> <!-- 根据 Sun 编码规范, class 或 interface 中的顺序如下: 1.class 声明。首先是 public, 然后是protected , 然后是 package level (不包括access modifier ) 最后是private . (多个class放在一个java文件中的情况) 2.变量声明。 首先是 public, 然后是protected然后是 package level (不包括access modifier ) 最后是private . (多个class放在一个java文件中的情况) 3.构造函数 4.方法 --> <module name="DeclarationOrder" /> <!-- 同一行不能有多个声明 --> <module name="MultipleVariableDeclarations" /> <!-- 不必要的圆括号 --> <module name="UnnecessaryParentheses" /> <!-- 杂项 --> <!-- 检查并确保所有的常量中的L都是大写的。因为小写的字母l跟数字1太象了 --> <module name="UpperEll" /> <!-- 检查数组类型的定义是String[] args,而不是String args[] --> <module name="ArrayTypeStyle" /> <!-- 检查java代码的缩进 默认配置:基本缩进 4个空格,新行的大括号:0。新行的case 4个空格 --> <module name="Indentation" /> <!-- Todo 备注 --> <module name="TodoComment"/> <!-- 常量类检测 --> <module name="FinalClass"/> <!-- Checks for common coding problems --> <!-- See http://checkstyle.sf.net/config_coding.html --> <module name="AvoidInlineConditionals"/> <module name="EqualsHashCode"/> <module name="IllegalInstantiation"/> <module name="InnerAssignment"/> <module name="MissingSwitchDefault"/> <module name="SimplifyBooleanExpression"/> <module name="SimplifyBooleanReturn"/> </module> </module>
java代码检测checkstyle.xml
猜你喜欢
转载自zhb1208.iteye.com/blog/2158493
今日推荐
周排行