关于CVS和Checkstyle的使用(给组里的新同学)(二)

二 关于checkStyle

CheckStyle的作用在于约束代码规范,达到风格统一。


CheckStyle使用前需要安装CheckStyle的Eclipse插件,插件在FTP--项目相关--小组代码规范中,下载完成后将feature和plugin中的文件分别完全复制进Eclipse的feature和plugin文件夹中,重启Eclipse即完成安装。


若因调试需要停止了Checkstyle,请确保在提交之前重启了Checkstyle。请确保提交到服务器上的代码通过Checkstyle


下面是小组代码基本要求


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

	<!-- 重复代码的检查,超过10行就认为重复-->
	<module name="StrictDuplicateCode">
	    <property name="min" value="10"/>
	    <property name="charset" value="UTF-8"/>
	</module>

    <module name="TreeWalker">
    
		<!-- 需要包声明,不允许默认包 -->
        <module name="PackageDeclaration"/>
		<!-- 不允许import * -->
		<module name="AvoidStarImport"/>
		<!-- javadoc的检查 -->
		<!-- 检查所有的interface和class -->
	    <module name="JavadocType"/>

		<!-- 检查所有方法的javadoc,可以不声明RuntimeException -->
		<module name="JavadocMethod">
		    <property name="allowUndeclaredRTE" value="true"/>
		</module>
		<!-- 检查某个变量的javadoc -->
 		<module name="JavadocVariable"/>

		<!-- 命名方面的检查,它们都使用了Sun官方定的规则。 -->
		<!-- 类名(class 或interface) 的检查 -->
		<module name="TypeName"/>
		<!-- 变量的检查 -->
		<module name="MemberName"/>
		<!-- 方法名的检查 -->
		<module name="MethodName"/>
		<!-- 方法的参数名 -->
		<module name="ParameterName "/>
		<!-- 常量名的检查 -->
		<module name="ConstantName"/>
		<!-- 如果变量可以设为final,则设置成final -->
		<module name="FinalLocalVariable"/>
		<!-- java方式的数组风格 如String[] args -->
		<module name="ArrayTypeStyle"/>
		
		
		<!-- 长度方面的检查 -->
		<!-- 文件长度不超过1500行 -->
		<module name="FileLength">
		      <property name="max" value="1500"/>
		</module>
		<!-- 每行不超过120个字-->
		<module name="LineLength">
		    <property name="max" value="120"/>
		</module>
		<!-- 方法不超过35行 -->
		<module name="MethodLength">
		   <property name="tokens" value="METHOD_DEF"/>
		   <property name="max" value="35"/>
		</module>
		<!-- 方法的参数个数不超过6个。 -->
		<module name="ParameterNumber">
		   <property name="max" value="6"/>
		</module>
		

		<!-- 多余的关键字 -->
		<module name="RedundantModifier"/>
		<!-- 对区域的检查 -->
		<!-- 不能出现空白区域 -->
		<module name="EmptyBlock"/>		
		<!-- 所有区域都要使用大括号。 -->
		<module name="NeedBraces"/>
		<!-- 多余的括号 -->
		<module name="AvoidNestedBlocks">
			<property name= "allowInSwitchCase" 
			value="true"/>
		</module>
		
		
		
		
		<!-- 编码方面的检查 -->

		<!-- 不许出现空语句 -->
		<module name="EmptyStatement"/>
		<!-- 每个类都实现了equals()和hashCode() -->
		<module name="EqualsHashCode"/>
		<!-- 不许内部赋值 -->
		<module name="InnerAssignment"/>		
		<!-- 不允许魔法数 -->
		<module name="MagicNumber"/>
		<!-- 循环控制变量不能被修改 -->
		<module name="ModifiedControlVariable"/>
		<!-- 多余的throw -->
		<module name="RedundantThrows"/>
		<!-- 不许使用未被简化的条件表达式 -->
		<module name="SimplifyBooleanExpression"/>
		<!-- 不许使用未被简化的布尔返回值 -->
		<module name="SimplifyBooleanReturn"/>	
		<!-- String的比较不能用!= 和 == -->
		<module name="StringLiteralEquality"/>
		<!-- 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"/>
		<!-- 一个方法中最多有4个return -->
		<module name="ReturnCount">
		    <property name="max" value="4"/>
		</module>	
		<!-- 不许对方法的参数赋值 -->
		<module name="ParameterAssignment"/>
		<!-- 不许有同样内容的String -->
		<module name="MultipleStringLiterals"/>	
		<!-- 同一行不能有多个声明 -->
		<module name="MultipleVariableDeclarations"/>

		
		<!-- 各种量度 -->
		<!-- 布尔表达式的复杂度,不超过3 -->
		<module name="BooleanExpressionComplexity"/>
		<!-- 类数据的抽象耦合,不超过7 -->
		<module name="ClassDataAbstractionCoupling"/>
		<!-- 类的分散复杂度,不超过20 -->
		<module name="ClassFanOutComplexity"/>
		<!-- 函数的分支复杂度,不超过10 -->
		<module name="CyclomaticComplexity"/>
		<!-- 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>
		


	<!-- 检查翻译文件 	-->
	<module name="Translation"/>

</module>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值