符合阿里巴巴代码规范的checkstyle检测文件

一、安装与简介

eclipse和idea都有对应的插件,找到插件安装界面。搜索checkstyle,点击安装后,重启IDE即可。(网上有很多安装教程,就不重复制造轮子了)

二、导入配置文件

在checkstyle的设置界面导入我们自己写的配置文件。写了两个配置文件,都是基本符合阿里巴巴规范的。第一个是比较精简的(不检测魔术数字,不检测方法的doc等)。第二个是完整的,检测规范较多,有些过于严苛了,个人使用了第一个规范配置。

精简版




<module name="Checker">

    
    <module name="NewlineAtEndOfFile"/>

    
    <module name="FileLength">
        <property name="max" value="1500"/>
     module>

    
    <module name="TreeWalker">
        
        
        <module name="IllegalImport"/>
        
        <module name="RedundantImport"/>
        
        <module name="UnusedImports" />

        
        
        <module name="JavadocType">
            <property name="allowUnknownTags" value="true"/>
            <message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/>
        module>

        
        
        <module name="LocalFinalVariableName" />
        
        <module name="LocalVariableName" />
        
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
            <message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/>
        module>
        
        <module name="StaticVariableName" />
        
        <module name="TypeName">
             <property name="severity" value="warning"/>
             <message key="name.invalidPattern" value="名称 ''{0}'' 要符合 ''{1}''格式."/>
        module>
        
        <module name="MemberName" />
        
        <module name="MethodName" />
        
        <module name="ParameterName " />
        
        <module name="ConstantName" />

        
        
        <module name="ArrayTypeStyle"/>
        
        <module name="UpperEll"/>

        
        
        <module name="LineLength">
            <property name="max" value="140" />
        module>
        
        <module name="MethodLength">
            <property name="tokens" value="METHOD_DEF" />
            <property name="max" value="50" />
        module>
        
        <module name="ParameterNumber">
            <property name="max" value="5" />
            <property name="ignoreOverriddenMethods" value="true"/>
            <property name="tokens" value="METHOD_DEF" />
        module>

        
        
        <module name="MethodParamPad" />
        
        <module name="TypecastParenPad" />
        
        <module name="NoWhitespaceAfter"/>
        
        <module name="NoWhitespaceBefore"/>
        
        <module name="OperatorWrap"/>
        
        <module name="ParenPad"/>
        
        <module name="WhitespaceAfter"/>
        
        <module name="WhitespaceAround"/>

        
        
        <module name="ModifierOrder"/>
        
        <module name="RedundantModifier"/>

        
        
        <module name="AvoidNestedBlocks"/>
        
        <module name="EmptyBlock"/>
        
        <module name="LeftCurly"/>
        
        <module name="NeedBraces"/>
        
        <module name="RightCurly"/>

        
        
        <module name="EmptyStatement"/>
        
        <module name="EqualsHashCode"/>
        
        <module name="HiddenField">
            <property name="tokens" value="VARIABLE_DEF"/>
        module>
        
        <module name="InnerAssignment"/>
        
        <module name="MissingSwitchDefault"/>
        
        <module name="SimplifyBooleanExpression"/>
        
        <module name="SimplifyBooleanReturn"/>

        
        
        
        <module name="FinalClass"/>
        
        <module name="InterfaceIsType"/>
        
        <module name="VisibilityModifier">
            <property name="packageAllowed" value="true"/>
            <property name="protectedAllowed" value="true"/>
        module>

        
        
        <module name="StringLiteralEquality"/>
        
        <module name="NestedForDepth">
            <property name="max" value="2"/>
        module>
        
        <module name="NestedIfDepth">
            <property name="max" value="3"/>
        module>
        
        <module name="UncommentedMain">
            <property name="excludedClasses" value=".*[Application,Test]$"/>
        module>
        
        <module name="Regexp">
            <property name="format" value="System\.out\.println"/>
            <property name="illegalPattern" value="true"/>
        module>
        
        <module name="ReturnCount">
            <property name="max" value="3"/>
        module>
        
        <module name="NestedTryDepth ">
            <property name="max" value="3"/>
        module>
        
        <module name="SuperClone" />
        
        <module name="SuperFinalize" />


    module>
module>

完整版




<module name="Checker">

    
    <module name="NewlineAtEndOfFile"/>

    
    <module name="FileLength">
        <property name="max" value="1500"/>
     module>

    
    <module name="TreeWalker">
        
        
        <module name="AvoidStarImport">
            <property name="excludes" value="java.io,java.net,java.lang.Math"/>
            
            <property name="allowClassImports" value="false"/>
            
            <property name="allowStaticMemberImports" value="true"/>
        module>
        
        <module name="IllegalImport"/>
        
        <module name="RedundantImport"/>
           
        <module name="UnusedImports" />


        
        
        <module name="JavadocType">
            <property name="allowUnknownTags" value="true"/>
            <message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/>
        module>
        <module name="JavadocMethod">
            <property name="tokens" value="METHOD_DEF" />
            
            <property name="allowMissingPropertyJavadoc" value="true"/>
            <message key="javadoc.missing" value="方法注释:缺少Javadoc注释。"/>
        module>

        
        
        <module name="LocalFinalVariableName" />
        
        <module name="LocalVariableName" />
        
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
            <message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/>
        module>
        
        <module name="StaticVariableName" />
        
        <module name="TypeName">
             <property name="severity" value="warning"/>
             <message key="name.invalidPattern" value="名称 ''{0}'' 要符合 ''{1}''格式."/>
        module>
        
        <module name="MemberName" />
        
        <module name="MethodName" />
        
        <module name="ParameterName " />
        
        <module name="ConstantName" />

        
        
        <module name="ArrayTypeStyle"/>
        
        <module name="UpperEll"/>

        
        
        <module name="LineLength">
            <property name="max" value="120" />
        module>
        
        <module name="MethodLength">
            <property name="tokens" value="METHOD_DEF" />
            <property name="max" value="50" />
        module>
        
        <module name="ParameterNumber">
            <property name="max" value="5" />
            <property name="ignoreOverriddenMethods" value="true"/>
            <property name="tokens" value="METHOD_DEF" />
        module>

        
        
        <module name="MethodParamPad" />
        
        <module name="TypecastParenPad" />
        
        <module name="NoWhitespaceAfter"/>
        
        <module name="NoWhitespaceBefore"/>
        
        <module name="OperatorWrap"/>
        
        <module name="ParenPad"/>
        
        <module name="WhitespaceAfter"/>
        
        <module name="WhitespaceAround"/>

        
        
        <module name="ModifierOrder"/>
        
        <module name="RedundantModifier"/>

        
        
        <module name="AvoidNestedBlocks"/>
        
        <module name="EmptyBlock"/>
        
        <module name="LeftCurly"/>
        
        <module name="NeedBraces"/>
        
        <module name="RightCurly"/>

        
        
        <module name="EmptyStatement"/>
        
        <module name="EqualsHashCode"/>
        
        <module name="HiddenField">
            <property name="tokens" value="VARIABLE_DEF"/>
        module>
        
        <module name="IllegalInstantiation"/>
        
        <module name="InnerAssignment"/>
        
        <module name="MagicNumber">
           <property name="ignoreNumbers" value="0, 1"/>
           <property name="ignoreAnnotation" value="true"/>
       module>
        
        <module name="MissingSwitchDefault"/>
        
        <module name="SimplifyBooleanExpression"/>
        
        <module name="SimplifyBooleanReturn"/>

        
        
        
        <module name="FinalClass"/>
        
        <module name="HideUtilityClassConstructor"/>
        
        <module name="InterfaceIsType"/>
        
        <module name="VisibilityModifier">
            <property name="packageAllowed" value="true"/>
            <property name="protectedAllowed" value="true"/>
        module>

        
        
        <module name="StringLiteralEquality"/>
        
        <module name="NestedForDepth">
            <property name="max" value="2"/>
        module>
        
        <module name="NestedIfDepth">
            <property name="max" value="3"/>
        module>
        
        <module name="UncommentedMain">
            <property name="excludedClasses" value=".*Application$"/>
        module>
        
        <module name="Regexp">
            <property name="format" value="System\.out\.println"/>
            <property name="illegalPattern" value="true"/>
        module>
        
        <module name="ReturnCount">
            <property name="max" value="3"/>
        module>
        
        <module name="NestedTryDepth ">
            <property name="max" value="3"/>
        module>
        
        <module name="SuperClone" />
        
        <module name="SuperFinalize" />


    module>
module>

你可能感兴趣的:(☀软件使用,-------【Idea】)