淘宝的CheckStyle 1.0.2版

转载地址:http://www.searchtb.com/2011/01/coding-better-java-with-checkstyle.html

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

  Checkstyle configuration that checks the sun coding conventions from:

    - the Java Language Specification at
      http://java.sun.com/docs/books/jls/second_edition/html/index.html

    - the Sun Code Conventions at http://java.sun.com/docs/codeconv/

    - the Javadoc guidelines at
      http://java.sun.com/j2se/javadoc/writingdoccomments/index.html

    - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html

    - some best practices

  Checkstyle is very configurable. Be sure to read the documentation at
  http://checkstyle.sf.net (or in your downloaded distribution).

  Most Checks are configurable, be sure to consult the documentation.

  To completely disable a check, just comment it out or delete it from the file.

  Finally, it is worth reading the documentation.

-->  
 
<module name="Checker">  
    
    <!--
        If you set the basedir property below, then all reported file
        names will be relative to the specified directory. See
        http://checkstyle.sourceforge.net/5.x/config.html#Checker

        <property name="basedir" value="${basedir}"/>
    -->

    <!-- Checks that each Java package has a Javadoc file used for commenting. -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage       -->
   

    <!-- Checks whether files end with a new line.                        -->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    
    <!-- Checks that property files contain the same keys.         -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <module name="Translation"/>

    <module name="FileLength"/>

    <!-- Following interprets the header file as regular expressions. -->
    <!-- <module name="RegexpHeader"/>                                -->

    <module name="FileTabCharacter">
        <property name="eachLine" value="false"/>
    </module>

    <module name="RegexpSingleline">
        <!-- \s matches whitespace character, $ matches end of line. -->
        <property name="format" value="\s+$"/>
        <property name="message" value="Line has trailing spaces."/>
    </module>
    
    <module name="TreeWalker">  
        <module name="AbstractClassName">  
            <property name="format" value="^Abstract.*$|^.*Factory$"/>  
        </module>  
          
        <module name="ExecutableStatementCount">  
            <property name="max" value="500"/>  
            <property name="tokens" value="CTOR_DEF,METHOD_DEF,STATIC_INIT,INSTANCE_INIT"/>  
        </module>  
        <module name="AnonInnerLength">  
            <property name="max" value="20"/>  
        </module>  
        <module name="EmptyForInitializerPad">  
            <property name="option" value="space"/>  
        </module>  
        <module name="EmptyForIteratorPad">  
            <property name="option" value="space"/>  
        </module>  
        <module name="MethodParamPad">  
            <property name="allowLineBreaks" value="false"/>  
            <property name="option" value="space"/>  
            <property name="tokens" value="METHOD_DEF,CTOR_DEF"/>  
        </module>  
        <module name="NoWhitespaceAfter">  
            <property name="allowLineBreaks" value="true"/>  
        </module>  
        <module name="NoWhitespaceBefore">  
            <property name="allowLineBreaks" value="true"/>  
        </module>  
        <module name="TypecastParenPad">  
            <property name="option" value="space"/>  
        </module>  
        <module name="ParenPad">  
            <property name="option" value="nospace"/>  
        </module>  
        <module name="WhitespaceAfter">  
            <property name="tokens" value="COMMA,SEMI,TYPECAST"/>  
        </module>  
        <module name="WhitespaceAround">  
            <property name="tokens" value="ASSIGN"/>  
        </module>  
        <module name="ModifierOrder"/>  
        <module name="RedundantModifier">  
            <property name="tokens" value="METHOD_DEF,VARIABLE_DEF"/>  
        </module>  
        <module name="AvoidNestedBlocks">  
            <property name="allowInSwitchCase" value="true"/>  
        </module>  
        <module name="MissingSwitchDefault"/>  
        <module name="ModifiedControlVariable"/>  
        <module name="RedundantThrows">  
            <property name="allowUnchecked" value="true"/>  
            <property name="allowSubclasses" value="true"/>  
        </module>  
        <module name="StringLiteralEquality"/>  
        <module name="SuperClone"/>  
        <module name="SuperFinalize"/>  
         
        <module name="PackageDeclaration"/>  
        <module name="ReturnCount">  
            <property name="max" value="50"/>  
        </module>  
        <module name="DeclarationOrder"/>  
        
        <module name="DefaultComesLast"/>  
        <module name="FallThrough"/>  
        <module name="MultipleStringLiterals">  
            <property name="allowedDuplicates" value="20"/>  
        </module>  
        <module name="MultipleVariableDeclarations"/>  
        <module name="RequireThis">  
            <property name="checkFields" value="false"/>  
            <property name="checkMethods" value="false"/>  
        </module>  
              
        <module name="ThrowsCount">  
            <property name="max" value="7"/>  
        </module>  
        <module name="BooleanExpressionComplexity">  
            <property name="max" value="7"/>  
        </module>  
        <module name="ClassDataAbstractionCoupling">  
            <property name="max" value="20"/>  
        </module>  
        
        <module name="CovariantEquals"/>  
        <module name="HiddenField">
            <property name="ignoreSetter" value="true"/>  
        </module>  
        <module name="InterfaceIsType">  
            <property name="allowMarkerInterfaces" value="true"/>  
        </module>    
        <module name="ArrayTypeStyle">  
            <property name="javaStyle" value="true"/>  
        </module>  
        <module name="Indentation">  
            <property name="basicOffset" value="4"/>  
            <property name="braceAdjustment" value="0"/>  
            <property name="caseIndent" value="4"/>  
        </module>  
        
        <module name="FileContentsHolder">  
        </module>   
        <module name="AvoidStarImport">  
            <property name="excludes" value="java.io,java.util"/>  
        </module>  
        <module name="ConstantName">  
            <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>  
        </module>  
        <module name="EmptyBlock">  
            <property name="option" value="stmt"/>  
        </module>  
        <module name="EqualsHashCode"/>  
        <module name="IllegalImport">  
        </module>  
        <module name="IllegalInstantiation"/>  
          
        <module name="JavadocType">  
            <property name="authorFormat" value="\S"/>  
            <property name="scope" value="protected"/>  
            <property name="versionFormat" value="\$Revision.*\$"/>  
            <property name="excludeScope" value="public"/>   
        </module>  
        <module name="JavadocMethod">  
            <property name="scope" value="private"/>  
            <property name="allowMissingParamTags" value="false"/>  
            <property name="allowMissingThrowsTags" value="true"/>  
            <property name="allowMissingReturnTag" value="false"/>  
            <property name="tokens" value="METHOD_DEF"/>  
            <property name="allowUndeclaredRTE" value="true"/>  
            <property name="allowThrowsTagsForSubclasses" value="true"/>  
        </module>  
        <module name="JavadocVariable">  
            <property name="scope" value="private"/>
            <property name="excludeScope" value="protected"/>
        </module>  
        <module name="JavadocStyle">  
            <property name="scope" value="public"/>  
            <property name="checkFirstSentence" value="false"/>  
            <property name="checkEmptyJavadoc" value="true"/>  
            <property name="checkHtml" value="false"/>  
        </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="LineLength">  
            <property name="max" value="200"/>  
            <property name="ignorePattern" value="^ *\* *[^ ]+$"/>  
        </module>  
        <module name="LocalFinalVariableName">  
            <property name="format" value="^[A_Z][A-Z0-9]*(_[A_Z0-9]+)*$"/>  
        </module>  
        <module name="LocalVariableName">  
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  
        </module>  
        <module name="MemberName">  
            <property name="format" value="^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$"/>  
            <property name="applyToPublic" value="true"/>  
            <property name="applyToProtected" value="true"/>  
            <property name="applyToPackage" value="true"/>  
            <property name="applyToPrivate" value="true"/>  
        </module>  
        <module name="MethodLength">  
            <property name="max" value="100"/>  
            <property name="countEmpty" value="true"/>  
            <property name="tokens" value="METHOD_DEF"/>  
        </module>  
        <module name="MethodName">  
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  
        </module>  
        <module name="ModifierOrder"/>  
        <module name="NeedBraces">  
        </module>  
        <module name="OperatorWrap">  
            <property name="tokens"   
                value="ASSIGN, DIV, DIV_ASSIGN, PLUS_ASSIGN, MINUS, MINUS_ASSIGN, STAR, STAR_ASSIGN, MOD, MOD_ASSIGN, SR, SR_ASSIGN, BSR, BSR_ASSIGN, SL, SL_ASSIGN, BXOR, BXOR_ASSIGN, BOR, BOR_ASSIGN, BAND, BAND_ASSIGN,PLUS, QUESTION"/>  
            <property name="option" value="eol"/>  
        </module>  
        <module name="PackageName">  
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>  
        </module>  
        <module name="ParameterName">  
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  
        </module>  
        <module name="ParameterNumber">  
            <property name="max" value="10"/>  
            <property name="tokens" value="METHOD_DEF,CTOR_DEF"/>  
        </module>  
        <module name="RedundantImport"/>  
        <module name="RedundantModifier"/>  
        <module name="RightCurly">  
            <property name="option" value="alone"/>  
            <property name="tokens" value="LITERAL_TRY"/>  
        </module>  
        <module name="SimplifyBooleanExpression"/>  
        <module name="SimplifyBooleanReturn"/>  
        <module name="StaticVariableName">  
            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>  
        </module>  
        <module name="TypeName">  
            <property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>  
            <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>  
        </module>  
        <module name="UnusedImports"/>  
        <module name="UpperEll"/>  
        <module name="VisibilityModifier">  
            <property name="packageAllowed" value="false"/>  
            <property name="protectedAllowed" value="false"/>  
            <property name="publicMemberPattern" value="^seriaVersionUID$"/>  
        </module>  
        <module name="WhitespaceAround"/>  
        <module name="FinalClass"/>  
        <module name="MissingSwitchDefault"/>  
        
        <module name="ArrayTrailingComma"/>  
        <module name="CyclomaticComplexity">  
            <property name="severity" value="ignore"/>  
        </module>  
        <module name="NestedIfDepth">  
            <property name="max" value="1"/>  
        </module>  
        <module name="NestedTryDepth">  
            <property name="max" value="3"/>  
        </module>  
        <module name="ExplicitInitialization"/>  
    </module>  
</module> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值