java checkStyle

http://blog.csdn.net/ccboy2009/article/details/32318781java

  1. template.xml配置以下:

<?xml version="1.0" encoding="UTF-8"?>數組

<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">函數

<module name="Checker">編碼

<!--檢查重複行-->
<module name="StrictDuplicateCode">
	<property name="min" value="5" />
</module>

<!--文件行數-->
<module name="FileLength">
	<property name="max" value="2000"/>
</module>

<module name="FileTabCharacter"/>

<module name="TreeWalker">
	
	<!--javadoc的檢查:1類,2方法,3變量-->
	<module name="JavadocType" />
	<module name="JavadocMethod"/>
	<module name="JavadocVariable"/> 
	
	<!-- import方面的檢查:1避免*,2沒有被用到,3重複的,4基本類型 -->
	<module name="AvoidStarImport" />
	<module name="UnusedImports" />
	
	<!-- 命名規則檢查:Class或Interface ^[A-Z][a-zA-Z0-9]*$-->
	<module name="TypeName" />
	
	<!-- 方法名  ^[a-z][a-zA-Z0-9]*$-->
	<module name="MethodName" />
	
	<!-- 方法的參數命名 ^[a-z][a-zA-Z0-9]*$-->
	<module name="ParameterName " />
	
	<!-- 非static型變量  ^[a-z][a-zA-Z0-9]*$-->
	<module name="MemberName"/>
	
	<!-- 常量名檢查(static , final 字段)  ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$-->
	<module name="ConstantName" />
	
	<!-- 包名檢查 ^[a-z]+(\.[a-z][a-z0-9]*)*$ -->
	<module name="PackageName">
		<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
	</module>
	
	<!-- 局部的final變量,包括catch中的參數  ^[a-z][a-zA-Z0-9]*$ -->
	<module name="LocalFinalVariableName" />
	
	<!-- 局部的非final型的變量,包括catch中的參數  ^[a-z][a-zA-Z0-9]*$ -->
	<module name="LocalVariableName" />
	
	<!-- 僅僅是static型的變量(不包括staticfinal型)  ^[a-z][a-zA-Z0-9]*$ -->
	<module name="StaticVariableName" />


	<!-- 方法的參數個數不超過5個,而且不對構造方法進行檢查-->
	<module name="ParameterNumber">
		<property name="max" value="5" />
		<property name="tokens" value="METHOD_DEF" />
	</module>


	<!--代碼行數及行代碼長度限制: 方法不超過200行,每行不超過150字符-->
	<module name="MethodLength">
		<property name="tokens" value="METHOD_DEF" />
		<property name="max" value="200" />
	</module>
	<module name="LineLength">
		<property name="max" value="150" />
	</module>

	<!-- 空格限定-->
	<module name="MethodParamPad"/>
	<module name="ParenPad"/>
	<module name="TypecastParenPad"/>

	
	<!-- 關鍵字-->
	<!-- public static final XXX 是對一個常量的聲明。若是使用static public final 就是錯誤的 -->
	<module name="ModifierOrder"/>
	<!-- 過濾多於的關鍵字-->
	<module name="RedundantModifier"/>
	
	<!-- 空白域-->
	<module name="EmptyBlock"/>
	<module name="NeedBraces"/>
	<!-- 多餘的括號 -->
	<module name="AvoidNestedBlocks">
		<property name= "allowInSwitchCase" value="true"/>
	</module>
	
	
	<!--編碼方面的檢查 -->
	<module name="EmptyStatement" />
	
	<!-- 若是某個變量一直都沒變,那麼它就應該是final型的
	<module name="FinalLocalVariable"/> -->
	
	<!-- 不容許使用switch語句 -->
	<module name="IllegalToken">
		<property name="tokens" value="LITERAL_SWITCH"/>
	</module>
	
	<!-- 內部賦值語句 :String s = Integer.toString(i = 2); -->
	<module name="InnerAssignment"/>
	
	<!-- 絕對不能容忍魔法數 ,即數據標識常量化-->
	<module name="MagicNumber" />
	
	<!--循環控制變量-->
	<module name="ModifiedControlVariable" />
	
	<!-- 多餘的throw -->
	<module name="RedundantThrows" />

	<!-- 未被簡化的布爾返回值-->
	<module name="SimplifyBooleanReturn"/>
	<!-- String的比較不能用!= 和 == -->
	<module name="StringLiteralEquality" />
	
	<!-- if最多嵌套3層 -->
	<module name="NestedIfDepth">
		<property name="max" value="3" />
	</module>
	
	<!-- try最多被嵌套2層 -->
	<module name="NestedTryDepth">
		<property name="max" value="2" />
	</module>
	
	<!-- 檢查並確認一個類的clone()方法調用了父類的clone() -->
	<module name="SuperClone"/>
	<!-- 檢查並確認一個類的finalize()調用了父類的finalize() -->
	<module name="SuperFinalize"/>
	
	<!-- 不能catch java.lang.Exception,異常分類處理-->
	<module name="IllegalCatch">
		<property name="illegalClassNames" value="java.lang.Exception" />
	</module>
	 
	<!-- 確保一個類有package聲明 -->
	<module name="PackageDeclaration" />
	
	<!-- 一個方法中最多有3個return -->
	<module name="ReturnCount">
		<property name="max" value="3" />
		<property name="format" value="^$" />
	</module>
	
	<!-- 確保某個class 在被使用時都已經被初始化成默認值(對象是null , 數字和字符是0 , boolean 變量是false.)了 -->
	<module name="ExplicitInitialization"/>
	
	<!-- 不準有一樣內容的String -->
	<module name="MultipleStringLiterals" />
	
	<!-- 同一行不能有多個聲明 -->
	<module name="MultipleVariableDeclarations" />
	
	<!-- 沒必要要的圓括號 檢查沒必要要的圓括號」(,)」。好比, if(((((true))))) -->
	<module name="UnnecessaryParentheses" />		
	
	<!-- 限制一個布爾表達式中的 &&, || 和^的個數。能夠讓代碼看起來更清晰,容易排錯和維護  -->
	<module name="BooleanExpressionComplexity">
		<property name="max" value="4"/>
	</module>
	
	<!-- 一個類中若是使用太多其餘的類,是確定會增長系統複雜度的。使用其餘的類越少,耦合度就越少 -->
	<module name="ClassDataAbstractionCoupling">
		<property name="max" value="10"/>
	</module>
	
	<!-- 確保函數的分支複雜度沒有超出限制 -->
	<module name="CyclomaticComplexity">
		<property name="max" value="4"/>
	</module>
	
	<!-- NPATH 量度計算了一個函數的可執行的分支個數 -->
	<module name="NPathComplexity">
		<property name="max" value="3"/>
	</module>

	<!-- ************************其餘*********************************** -->
	<!-- 檢查並確保全部的常量中的L都是大寫的。由於小寫的字母l跟數字1太象了 -->
	<module name="UpperEll" />
	
	<!-- 檢查數組類型的定義是String[] args,而不是String args[] -->
	<module name="ArrayTypeStyle" />
	
	<!-- 不準使用與代碼同行的註釋
	<module name="TrailingComment"/>
	 -->
	 
	<!-- 不準存在TO DO -->
	<module name="TodoComment" />
	
	<!-- 除了正常的程序入口以外,全部的main方法都應該被刪掉或註釋掉 -->
	<module name="UncommentedMain"/>
</module>

</module>.net

相關文章
相關標籤/搜索