一个完整的checkstyle规范

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
 <!--
 This configuration file was written by the eclipse-cs plugin configuration editor
 -->
 <!--
 Checkstyle-Configuration: TTPod Checks
 Description:
 Slightly modified version of TTPod Checks that better matches the default code formatter setting of Eclipse.
 -->
 <module name="Checker">
 <property name="severity" value="warning"/>
  
 <!-- 文件长度不超过2000行,default2000行 -->
 <module name="FileLength"/>
  
 <module name="TreeWalker">
  
 <!-- 检查所有的interface和class,允许未知的标签-->
 <module name="JavadocType">
 <property name="allowUnknownTags" value="true"/>
 <message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/>
 </module>
  
 <!-- 检查所有方法的javadoc,可以不声明RuntimeException -->
 <module name="JavadocMethod">
 <property name="allowUndeclaredRTE" value="true"/>
 <!--允许get set 方法没有注释-->
 <property name="allowMissingPropertyJavadoc" value="true"/>
 <message key="javadoc.missing" value="方法注释:缺少Javadoc注释。"/>
 </module>
  
 <!-- 检查某个变量的javadoc -->
 <module name="JavadocVariable">
 <message key="javadoc.missing" value="变量注释:缺少Javadoc注释。"/>
 </module>
  
 <!--注解设置-->
 <module name="AnnotationUseStyle">
 <!--注解的参数样式 忽略-->
 <property name="elementStyle" value="ignore"/>
 <!--是否在数组元素后尾随逗号 忽略 -->
 <property name="trailingArrayComma" value="ignore"/>
 <!--检查是否保留结束括号 忽略 -->
 <property name="closingParens" value="ignore"/>
 </module>
  
 <!-- 命名规范 -->
 <!-- 类的命名,匹配规则默认:(^[A-Z][a-zA-Z0-9]*$),必须以大写字母开始 -->
 <module name="TypeName">
 <property name="tokens" value="CLASS_DEF"/>
 </module>
  
 <!-- 接口命名,匹配规则:(^I[A-Z][a-zA-Z0-9]*$),必须以大写I开始 -->
 <module name="TypeName">
 <property name="format" value="^I[A-Z][a-zA-Z0-9]*$"/>
 <property name="tokens" value="INTERFACE_DEF"/>
 </module>
  
 <!-- 变量的检查 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围: 非static型变量 命名为小写-->
 <module name="MemberName"/>
 <!-- 方法名的检查 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围:方法名 命名为小写-->
 <module name="MethodName"/>
 <!-- 方法的参数名 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围:方法中的参数名 命名为小写-->
 <module name="ParameterName "/>
 <!-- 常量名的检查 匹配规则默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ 范围:常量(static , final 字段) 命名为大写-->
 <module name="ConstantName"/>
  
  
 <!-- 包名的检测,必须以com.ttpod.工程名命名,且必须全小写,$\{projectname\} -->
 <module name="PackageName">
 <property name="format" value="com\.ttpod\.[a-z]+(\.[a-z][a-z0-9]+)*$"/>
 </module>
  
 <!-- 限制导入.*包的检查,允许导入java.io.*,java.net.*,java.lang.Math.*,其它不允许 -->
 <module name="AvoidStarImport">
 <property name="excludes" value="java.io,java.net,java.lang.Math"/>
 <!-- 实例;import java.util.*;.-->
 <property name="allowClassImports" value="false"/>
 <!-- 实例 ;import static org.junit.Assert.*;-->
 <property name="allowStaticMemberImports" value="true"/>
 </module>
  
 <!-- 限制导入多余的包,例如java.lang.String -->
 <module name="RedundantImport"/>
  
 <!-- 限制导入未使用过的类 -->
 <module name="UnusedImports"/>
  
 <!--代码规范-->
 <!-- 每行不超过150个字,默认80-->
 <module name="LineLength">
 <property name="max" value="150"/>
 </module>
  
 <!-- 即制方法和构造函数行数不超过多少行,默认160行(不包括空行) -->
 <module name="MethodLength">
 <property name="countEmpty" value="false"/>
 <property name="tokens" value="METHOD_DEF,CTOR_DEF"/>
 <property name="max" value="160"/>
 </module>
  
 <!-- 不能出现大块空白区域 -->
 <module name="GenericWhitespace"/>
  
 <!-- 检查是否有未初始化的循环变量 -->
 <module name="EmptyForInitializerPad"/>
  
 <!-- 不许出现空语句 int a = 0; //正常 ; // 这里就是一个空的语句 -->
 <module name="EmptyStatement"/>
  
 <!-- 不能容忍魔法数,范围 double,int 忽略0,1 -->
 <module name="MagicNumber">
 <property name="tokens" value="NUM_DOUBLE, NUM_FLOAT"/>
 <property name="ignoreNumbers" value="0,1"/>
 <property name="ignoreAnnotation" value="true"/>
 </module>
  
 <!-- String的比较不能用!= 和 == -->
 <module name="StringLiteralEquality"/>
  
 <!-- 限制for循环最多嵌套3层 -->
 <module name="NestedForDepth">
 <property name="max" value="3"/>
 </module>
  
 <!-- if最多嵌套5层 -->
 <module name="NestedIfDepth">
 <property name="max" value="5"/>
 </module>
  
 <!-- 确保声明被初始化,例:对象是null,数字和字符是0
 <module name="ExplicitInitialization"/> -->
  
 <!-- 同一行不能有多个声明 -->
 <module name="MultipleVariableDeclarations"/>
  
 <!-- TODO的检查,表示不要出现todo未办事项目-->
 <module name="TodoComment">
 <property name="format" value="TODO\W+"/>
 </module>
  
 <!-- 检查未被注释的main方法,排除以Main结尾命名的类 -->
 <module name="UncommentedMain">
 <property name="excludedClasses" value=".*Main$"/>
 </module>
  
 <!-- 检查数组声明风格 只能为java 例如: String[] args -->
 <module name="ArrayTypeStyle"/>
  
 <!-- 检查左侧大括号 左侧大括号必须放在前一行代码的行尾 -->
 <module name="LeftCurly">
 <property name="severity" value="warning"/>
 <message key="line.previous" value="左侧大括号必须放在前一行代码的行尾,不计入到80个字符内"/>
 </module>
  
 <!-- 对关键字else、try和catch的右侧大括号放置位置进行检查 -->
 <module name="RightCurly">
 <property name="severity" value="warning"/>
 <!--与下一语句放在同一行 -->
 <property name="option" value="same"/>
 </module>
  
 <!-- 禁止使用System.out.println -->
 <module name="Regexp">
 <property name="format" value="System\.out\.println"/>
 <property name="illegalPattern" value="true"/>
 </module>
  
  
 <!--避免 null.equals("sss")情况-->
 <module name="EqualsAvoidNull"/>
  
 <!-- 异常抛出数量定义 -->
 <module name="ThrowsCount">
 <metadata name="net.sf.eclipsecs.core.comment" value="最大异常抛出个数"/>
 <property name="max" value="3"/>
 </module>
  
 <!-- 参数个数定义 最多三个-->
 <module name="ParameterNumber">
 <property name="max" value="7"/>
 </module>
  
 <!-- return个数 3个-->
 <module name="ReturnCount">
 <property name="max" value="3"/>
 </module>
  
 <!--try catch 异常处理数量 3-->
 <module name="NestedTryDepth ">
 <property name="max" value="3"/>
 </module>
  
 </module>
 </module>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值