您的位置:首页 > 其它

checkStyle使用详解

2015-06-29 09:01 686 查看

简介

checkStyle是一款代码格式检查工具,它根据设置好的编码规则来自动检查代码。比如命名规范,文件长度,代码行长度等等。代码检查工具是保证项目代码质量、统一编码风格的一种重要途径。本篇博客主要讲讲使用checkStyle的检查规则的陪置。

安装

方法一:

Eclipse中,选择Help->Software Updates->Find and Install
选择 Search for new features to install 选择Next
选择 New Remote Site
输入更新地址:http://eclipse-cs.sourceforge.net/update
安装后重启即可

方法二:

1.下载eclipse插件:http://sourceforge.net/projects/eclipse-cs/
下载后,把里面的两个文件夹plugins和 features下面的文件分别拷贝到eclipse目录下面对应的plugins和features目录
2.如果你就这样直接启动eclipse 可能会出现ClassNotFoundExceptions 等错误,所以必须在启动eclipse的时候加上一个参数 -clean. 这样eclipse就可以更新它当前安装的许多插件信息
比如你得eclipse在d盘 那么就是 d:\eclipse\eclipse.exe -clean

Checkstyle的陪置文件导入

点击“Window”->“Preferences”菜单,在弹出窗口左侧点击“Checkstyle”,可看到右侧默认选中的是“Sun Checks”检查规则,因为该规则要求比较严格,而且不适合本研发中心,所以需要自定义检查文件。点击“New”按钮后,弹出“Check Configuration Properties”窗口,如下图所示:



在上图中选择“Type”为“External Configuration File”(外部配置文件),在“Location”行点击“Browse”按钮浏览选择checkstyle的配置文件,例如eclipse_checkstyle.xml文件(仅供参考,可自行定义),并输入“Name”行的值,例如“eclipse_checkstyle”,点击“OK”按钮完成导入操作。回到Checkstyle主页面选择刚才添加的文件,点击“Set As Default”将其设置为默认checkstyle检查文件。

陪置详解

<module name="Checker">

    <!-- 消息提示等级 -->
    <property name="severity" value="warning"/>
	<!-- 字符集限制 -->
	<property name="charset" value="UTF-8"/>

<module name="TreeWalker">

		<!-- javadoc的检查 -->
		<!-- 检查所有的interface和class -->
	<module name="JavadocType"/>

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

		<!-- 命名方面的检查,它们都使用了Sun官方定的规则。 -->
		<!-- 类名(class 或interface) 的检查 -->
		<module name="TypeName"/>
		<!-- 变量的检查 -->
		<module name="MemberName"/>
		<!-- 方法名的检查 -->
		<module name="MethodName"/>
		<!-- 方法的参数名 -->
		<module name="ParameterName "/>
		<!-- 常量名的检查 -->
		<module name="ConstantName"/>
		
		
		<!-- 长度方面的检查 -->
		<!-- 文件长度不超过1500行 -->

		<!-- 每行不超过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="NeedBraces"/>
		<!-- 多余的括号 -->
		<module name="AvoidNestedBlocks">
			<property name= "allowInSwitchCase" 
			value="true"/>
		</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"/>
		<!-- 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="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 name="TrailingComment"/>
		<!-- 不允许存在todo标签 -->
		<module name="TodoComment">
            <property name="severity" value="warning"/>
			<property name="format" value="TODO"/>
		</module>
</module>
	
	<module name="FileLength">
		<property name="max" value="1500"/>
	</module>

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

</module>


小结:这里也就是陪置文件中的陪置项需要有一点了解,些小的错误都会导致文件陪置文件无法导入成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: