checkstyle的xml配置

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">


<module name="Checker">
     <!--1.
         重复代码的检查,超过8行就认为重复,UTF-8格式 本检查一定要放在"TreeWalker"节点前,否则在
         Checkclipse中会无法使用。)注意:StrictDuplicateCode连个方法,只选择一个。
     -->
     <module name="StrictDuplicateCode">
        <property name="min" value="8" />
        <property name="charset" value="UTF-8" />
  </module>

 <!--2. 检查类中是否有代码复制的问题 -->
 <module name="StrictDuplicateCode">
  <property name="min" value="20"/>
  <!--<property name="charset" value="UTF-8"/>-->
  <message key="duplicates.lines" value="从第{2}开始,有{0}行相同代码 与{1}中重复."/>
 </module>

<module name="TreeWalker">
        <!-- javadoc的检查 -->
       <!-- 检查类或者接口的javadoc注释,author不能为administrator-->
  <module name="JavadocType">
   <property name="authorFormat" value="[^administrator]"/>
   <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
  </module>
  <!-- 检查所有方法的javadoc,可以不声明RuntimeException -->
        <module name="JavadocMethod">
            <property name="scope" value="private"/>    <!-- 方法定义私有变量,如果需要定义全局变量value值为public -->  
            <property name="allowMissingParamTags" value="false"/>  <!-- 是否允许错误的参数声明,true为允许,缺省为不允许 --> 
            <property name="allowMissingThrowsTags" value="false"/> <!-- 是否允许错误的错误声明,true为允许,缺省为不允许 -->  
            <property name="allowMissingReturnTag" value="false"/> <!-- 是否允许错误的返回类型声明,true为允许,缺省为不允许 -->
            <property name="tokens" value="METHOD_DEF"/>   <!-- 方法中出现标记 -->     
            <property name="allowUndeclaredRTE" value="true"/>  <!-- 方允许出现运行时异常,也就是说在编译时允许出现异常 -->
            <property name="allowThrowsTagsForSubclasses" value="true"/> <!-- 是否允许创建子类声明,true为允许,缺省为不允许 -->
        </module>
  <!-- 检查某个变量的javadoc -->
        <module name="JavadocVariable" />
        <!-- 命名方面的检查,它们都使用了Sun官方定的规则。 -->
        <!-- 类名(class 或interface) 的检查 -->
  <!-- 定义类和接口的命名规则 -->
        <module name="TypeName">
   <property name="format" value="^[A-Z][a-zA-Z0-9]*$"/> 
   <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
  </module>
  <!-- 不能使用*导入所需的类 -->
  <module name="AvoidStarImport"/>
  <!-- 检查是否从非法的包中导入了类 -->
  <module name="IllegalImport"/>  
   <!-- 检查是否导入的包没有使用 -->
  <module name="UnusedImports"/> 
   <!-- 检查修饰符的顺序 -->
  <module name="ModifierOrder"/> 

  <!-- 检查抽象类名 必须以Abstract开头或者Factory结尾-->
  <module name="AbstractClassName">
            <property name="format" value="^Abstract.*$|^.*Factory$"/>
        </module>
        <!-- 变量的检查 -->
        <module name="MemberName" />

   <!-- 包名的检查(只允许小写字母) -->  
        <module name="PackageName">   
   <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />   
  </module> 

        <!-- 定义方法名的命名规则 -->
  <module name="MethodName">    
   <property name="format" value="^[a-z][a-zA-Z]*$"/><!-- 方法名的检查 -->
  </module>
  <!-- 检查是否有没有被注掉或者删除的main方法 -->
  <module name="UncommentedMain"/>
  <!-- 检查是否有静态import -->
  <module name="AvoidStaticImport"/>
  <!-- 检查一个可能为null的字符串是否在equals()比较的左边 -->
  <module name="EqualsAvoidNull"/>
        <!-- 检查方法的参数名 -->
        <module name="ParameterName " />
        <!-- 检查常量名的检查 -->
        <module name="ConstantName" />
        <!-- 检查长度方面的检查 -->
        <!-- 检查文件长度不超过1500行 -->
        <module name="FileLength">
            <property name="max" value="1500" />
        </module>
         <!-- 检查每行不超过120个字-->
        <module name="LineLength">
            <property name="max" value="120" />
        </module>
  <!-- 检查方法不超过30行 -->
        <module name="MethodLength">
            <property name="tokens" value="METHOD_DEF" />
            <property name="max" value="30" />
        </module>
        <!-- 检查方法的参数个数不超过3个。 -->
        <module name="ParameterNumber">
            <property name="max" value="3" />
        </module>
        <!--检查多余的关键字 -->
        <module name="RedundantModifier" />
        <!-- 检查对区域的检查 -->
        <!-- 检查不能出现空白区域 -->
        <module name="EmptyBlock" />
  <!-- 检查是否使用了多余的小括号 -->
  <module name="UnnecessaryParentheses"/>
  <!-- 检查类中是否有声明package -->
  <module name="PackageDeclaration"/>

        <!-- 所有区域都要使用大括号。 -->
        <!-- <module name="NeedBraces" />-->

  <!-- 检查是否应该使用括号的地方没有加括号 -->
  <module name="NeedBraces">  
   <property name="tokens" value="CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF"/>
  </module>
  <!-- 检查多余嵌套 -->
  <module name="RightCurly">
   <property name="option" value="alone"/> 
            <property name="tokens" value="LITERAL_TRY"/>
  </module>

        <!-- 检查多余的括号 -->
        <module name="AvoidNestedBlocks">
            <property name="allowInSwitchCase" value="true" />
        </module>
  <!-- 定义左大括号规范 -->
  <module name="LeftCurly">       
   <property name="option" value="eol"/> 
            <property name="maxLineLength" value="80"/> 
            <property name="tokens" value="CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF"/>
        </module>

   <!-- 编码方面的检查 -->
         <!-- 不许出现空语句 -->
         <module name="EmptyStatement" />
        <!-- 每个类都实现了equals()和hashCode() -->
         <module name="EqualsHashCode" />
         <!-- 不许使用switch -->
         <module name="IllegalToken">
            <property name="tokens" value="LITERAL_SWITCH" />
        </module>
        <!-- 不许内部赋值 -->
        <module name="InnerAssignment" />
        <!-- 检查魔鬼数字,绝对不能容忍魔法数 -->
        <module name="MagicNumber" />
        <!-- 循环控制变量不能被修改或者说是检查循环变量是否被修改 -->
        <module name="ModifiedControlVariable" />
  <!-- 多余的throw -->
        <module name="RedundantThrows" />
        <!-- 不许使用未被简化的条件表达式 -->
        <module name="SimplifyBooleanExpression" />
        <!-- 不许使用未被简化的布尔返回值 -->
        <module name="SimplifyBooleanReturn" />
        <!-- String的比较不能用!= 和 == -->
        <module name="StringLiteralEquality" />
  <!-- 检查是否抛出了未声明的异常 -->
  <module name="IllegalThrows"/>
  <!-- 检查依赖是否否完整 eg:switch代码的case中是否缺少break,return,throw和continue -->
  <module name="MissingCtor"/>
        <!-- if最多嵌套3层 -->
        <module name="NestedIfDepth">
            <property name="max" value="3" />
        </module>
        <!-- try最多被嵌套1层 -->
        <module name="NestedTryDepth" />
        <!-- 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>
        <!-- JUnitTestCase 的核心方法存在。 -->
        <module name="JUnitTestCase" />
        <!-- 一个方法中最多有3个return -->
        <module name="ReturnCount">
            <property name="max" value="3" />
        </module>
        <!-- 不许对方法的参数赋值 -->
        <module name="ParameterAssignment" />

        <!-- 不许有同样内容的String -->
       <!-- <module name="MultipleStringLiterals" />-->

   <!-- 检查一个文件中是否有多次出现的字符串 -->
  <module name="MultipleStringLiterals">
            <property name="allowedDuplicates" value="3"/>
        </module>

   <!-- 检查switch语句是否忘记了default标签 -->
  <module name="MissingSwitchDefault"/>

        <!-- 同一行不能有多个声明 -->
        <module name="MultipleVariableDeclarations" />
        <!-- 各种量度 -->
        <!-- 布尔表达式的复杂度,不超过3 -->
        <module name="BooleanExpressionComplexity" />

        <!-- 类数据的抽象耦合,不超过7 -->
       <module name="ClassDataAbstractionCoupling" />
        <!-- 类的分散复杂度,不超过20 -->
        <module name="ClassFanOutComplexity" />
        <!-- 函数的分支(圈)复杂度,不超过20 -->
        <module name="CyclomaticComplexity" >
   <property name="max" value="20"/>
  </module>
       <!-- NPath复杂度,不超过200 -->
        <module name="NPathComplexity" />
        <!-- 杂项 -->
       <!-- 禁止使用System.out.println -->
        <module name="GenericIllegalRegexp">
            <property name="format" value="System\.out\.println" />
            <property name="ignoreComments" value="true" />
        </module>
  <!--检查注释文件,不允许使用与代码同行的注释-->
  <module name="TrailingComment" />
  <!-- 检查switch语句是否忘记了default标签 -->
  <module name="MissingSwitchDefault"/>
  
   <!-- 检查初始化长整型变量时,数字後是加了大写字母'L'而不是小写字母'l' -->
  <module name="UpperEll"/>
</module>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值