IDEA 安装checkstyle插件

    CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。

IDEA安装CheckStyle插件步骤:

1、打开settings的plugins,点击查找CheckStyle-IDEA安装,如果查找不到,打开Browse repositories查找安装。如图:     

2、检查checkstyle插件是否生效,如图:


3、打开Settings的Other Settings,选择Checkstyle,添加检查规则的xml文件。如图:


点击Next完成添加。然后选中刚才定义的规则名称


4、添加完成后,打开任意java文件,右键选中Check Current File项,进行规则检查。如图:

 

根据检查的结果,进行调整代码。

因为不能上传附件,只能把检查规则的文件内容放在这:

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

<!--
  规则版本号:V1.0(2018-05-11) 
  本规则重在编程规范,请与PMD、FindBugs结合使用
-->
<module name="Checker">
	<!-- 每个java文件一个语法树 -->
    <module name="TreeWalker">
	
		<!--
		Javadoc Comments2
		-->
		<module name="JavadocType"/>
		<module name="JavadocMethod">
			<property name="scope" value="protected"/>
            <property name="allowMissingPropertyJavadoc " value="true"/>
            <property name="logLoadErrors" value="true"/>
            <property name="suppressLoadErrors" value="true"/>
        </module>
		<module name="JavadocVariable">
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocStyle">
           <property name="checkFirstSentence" value="false"/>
           <property name="checkEmptyJavadoc" value="true"/>
           <property name="checkHtml" value="false"/>
        </module>
		
		<!--
		Naming Conventions
		-->
        <module name="ConstantName">
           <property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)|(^logger$)"/>
        </module>
        <module name="LocalFinalVariableName">
           <property name="format" value="^[a-z][a-zA-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-z][a-zA-Z0-9]*$"/>
        </module>
        <module name="MethodName">
           <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
        </module>
        <module name="PackageName">
           <property name="format" value="^[a-z]+(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"/>
        </module>
        <module name="ParameterName">
           <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
        </module>
		<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]*$"/> 
        </module>


		<!-- import --> 
		 <!-- 避免使用* -->
        <module name="AvoidStarImport"/> 
		 <!-- 检查是否导入了多余的包 -->
        <module name="RedundantImport"/> 
		 <!-- 检查是否从非法的包中导入了类 -->
        <module name="IllegalImport"/>
		 <!-- 没用的import检查 -->
        <module name="UnusedImports"/> 		
		
		 <!-- 
		Size Violations 
		--> 
        <!--<module name="LineLength"> 
            <property name="max" value="120"/> 
        </module>--> 
        <module name="AnonInnerLength"> 
            <property name="max" value="60"/> 
        </module> 
		
		
		<!-- 
		Whitespace 
		-->              
        <module name="MethodParamPad"/> 
        <module name="NoWhitespaceAfter"/> 
        <module name="NoWhitespaceBefore"/> 
        <module name="OperatorWrap"/>  
        <module name="ParenPad"/> 
        <module name="TypecastParenPad"/> 
        <!--<module name="TabCharacter"/>-->  
        <module name="WhitespaceAround"> 
            <property name="tokens" value="COLON,NOT_EQUAL,QUESTION,DIV,DIV_ASSIGN,BXOR,BXOR_ASSIGN,MINUS,LCURLY,RCURLY,STAR,STAR_ASSIGN,TYPE_EXTENSION_AND,BAND,LAND,BAND_ASSIGN,MOD,MOD_ASSIGN,PLUS,PLUS_ASSIGN,LT,SL,SL_ASSIGN,LE,ASSIGN,MINUS_ASSIGN,EQUAL,GT,GE,SR,SR_ASSIGN,BSR,BSR_ASSIGN,BOR,BOR_ASSIGN,LOR,LITERAL_ASSERT,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,SLIST,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE"/> 
        </module>
		
		<!-- 
		Modifiers 
		--> 
        <module name="ModifierOrder"/> 
        
		<!-- Block Checks --> 
        <module name="EmptyBlock"/> 
        <module name="LeftCurly"> 
            <property name="option" value="eol"/> 
        </module> 
        <module name="NeedBraces"/> 
        <module name="RightCurly"> 
            <property name="option" value="alone"/> 
        </module> 
        <module name="AvoidNestedBlocks"> 
            <property name="allowInSwitchCase" value="true"/> 
        </module> 
		
		
		<!-- Coding -->  
		<!-- 检查局部变量或参数是否隐藏了类中的变量 -->
        <module name="HiddenField"> 
            <property name="ignoreConstructorParameter" value="true"/> 
            <property name="ignoreSetter" value="true"/> 
            <property name="ignoreAbstractMethods" value="true"/> 
        </module> 
		<!-- 检查是否有"魔鬼"数字 -->
        <module name="MagicNumber"> 
          <property name="tokens" value="NUM_DOUBLE, NUM_FLOAT, NUM_LONG"/> 
            <property name="ignoreNumbers" value="-1, 0, 1"/> 
        </module> 
        <!-- <module name="RedundantThrows"> 
            <property name="logLoadErrors" value="true"/> 
            <property name="suppressLoadErrors" value="true"/> 
        </module>-->  
        <module name="NestedTryDepth"> 
            <property name="max" value="2"/> 
        </module> 
        <module name="IllegalThrows"/> 
        <module name="DeclarationOrder"/> 
        <module name="UnnecessaryParentheses"/> 
		
		<!-- Class Design -->        
        <module name="VisibilityModifier"> 
            <property name="packageAllowed" value="true"/> 
            <property name="protectedAllowed" value="true"/> 
        </module> 
        <!--<module name="HideUtilityClassConstructor"/>    -->       
        <module name="ThrowsCount"> 
            <property name="max" value="3"/> 
        </module> 
		
		<!-- Metrics -->      
        <module name="BooleanExpressionComplexity"> 
            <property name="max" value="5"/> 
        </module> 
        
		<!-- Miscellaneous --> 
        <!--<module name="Indentation"/>--> 
        <module name="UncommentedMain"/> 
	</module>       
</module>











评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值