天天看點

checkstyle配置檔案說明

屬性

說明

basedir

代碼所在的位置

AbstractClassName

format: 定義抽象類的命名規則

PackageName

format: 定義包名的命名規則

TypeName

format: 定義類和接口的命名規則

tokens: 定義規則适用的類型,例如:CLASS_DEF表示類,INTERFACE_DEF 表示接口

ParameterName

format: 定義參數名的命名規則

ParameterNumber

max: 定義最多有多少個參數

tokens: 定義檢查的類型

StaticVariableName

format: 定義靜态變量的命名規則

MethodName

format: 定義方法名的命名規則

LeftCurly

option: 定義左大括号'{'顯示位置,eol在同一行顯示,nl在下一行顯示

maxLineLength: 大括号'{'所在行行最多容納的字元數

tokens: 該屬性适用的類型,例:CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF

LineLength

max: 定義一行所能容許的字元數

ignorePattern: 定義可以忽略的格式

MethodLength

檢查方法的行數

max: 最多容許的行數

countEmpty: 是否計算空行

RightCurly

option: 右大括号是否單獨一行顯示

PackageHtml

檢查對每一個包是否生成了package.html檔案

fileExtensions: 指定要檢查的檔案的類型,如果隻包含java檔案,就不必指定

JavadocType

檢查類或者接口的javadoc注釋

authorFormat: 檢查author标簽的格式

versionFormat: 檢查version标簽的格式

scope: 可以檢查的類的範圍,例如:public隻能檢查public修飾的類,private可以檢查所有的類

excludeScope: 不能檢查的類的範圍,例如:public,public的類将不被檢查,但通路權限小于public的類仍然會檢查,其他的權限以此類推

tokens: 該屬性适用的類型,例如:CLASS_DEF,INTERFACE_DEF

JavadocMethod

檢查方法的javadoc的注釋

scope: 可以檢查的方法的範圍,例如:public隻能檢查public修飾的方法,private可以檢查所有的方法

allowMissingParamTags: 是否忽略對參數注釋的檢查

allowMissingThrowsTags: 是否忽略對throws注釋的檢查

allowMissingReturnTag: 是否忽略對return注釋的檢查

JavadocVariable

檢查類變量的注釋

scope: 檢查變量的範圍,例如:public隻能檢查public修飾的變量,private可以檢查所有的變量

JavadocStyle

scope: 

excludeScope: 

checkFirstSentence: 

checkEmptyJavadoc: 

checkHtml: 

tokens:

LocalVariableName

format: 定義局部變量的命名規則

LocalFinalVariableName

format: 定義局部常量的命名規則

ConstantName

format: 定義全局常量的命名規則

MemberName

format: 定義非靜态成員變量的命名規則

applyToPublic: 是否适用于public的成員變量

applyToProtected: 是否适用于protected的成員變量

applyToPackage: 是否适用于package的成員變量

applyToPrivate: 是否适用于private的成員變量

AvoidStarImport

必須導入類的完整路徑,即不能使用*導入所需的類

excludes: 定義可以使用*導入的包

ImportOrder

定義導入包的順序

groups: 定義導入包的順序,預設以字母順序導入

ordered: 定義包是否必須按規定的順序顯示

separated: 定義包與包之間是否應添加空白行

caseSensitive: 是否區分包名的大小寫

IllegalImport

檢查是否從非法的包中導入了類

illegalPkgs: 定義非法的包名稱

UnusedImports

檢查是否導入的包沒有使用

RedundantImport

檢查是否導入了不必顯示導入的類

EmptyForInitializerPad

檢查for語句初始化變量的格式

option: 定義初始化語句中是否使用空格,例如:space表示使用空格,則for(int i = 0; i < 100; i++)就是符合格式要求的,而for(int i=0; i<100;i++)就不符合要求

EmptyForIteratorPad

檢查for iterator語句是否使用空格

option: 定義初始化語句是否使用空格,例如:space表示使用空格,則for(Iterator iterator = List.iterator(); iterator.hasNext(); iterator.next())就是形式合理的,否則就是形式不合理的

ExecutableStatementCount

檢查要執行的語句的數目

max: 定義所能容許的語句的最多數目

tokens: 定義可以檢查的類型,例如:CTOR_DEF,METHOD_DEF,STATIC_INIT,INSTANCE_INIT

FileLength

max: 定義一個檔案所能容許的行數

AnonInnerLength

檢查匿名内部類

max: 定義匿名内部類最多容許的行數

MethodParamPad

檢查方法參數的格式

allowLineBreaks: 參數是否允許在不同行(注:沒有作用)

option: 在參數和括号、參數和辨別符之間是否包含空格

OperatorWrap

檢查運算符是否在應在同一行

option: 定義運算符的位置,eol在同一行,nl在下一行

ParenPad

檢查左小括号'('後邊和右小括号')'前邊是否有空格

option: space表示有空格,nospace表示沒有空格

TypecastParenPad

暫不清楚

TabCharacter

檢查源碼中是否包含\t

WhitespaceAfter

檢查類型後是否包含空格

tokens: 檢查的類型

WhitespaceAround

ModifierOrder

檢查修飾符的順序,預設是 public,protected,private,abstract,static,final,transient,volatile,synchronized,native,strictfp(注:定義不起作用)

RedundantModifier

檢查是否有多餘的修飾符,例如:接口中的方法不必使用public、abstract修飾

EmptyBlock

檢查是否有空代碼塊

option: 定義代碼塊中應該包含的内容,例如:stmt表示語句

NeedBraces

檢查是否應該使用括号的地方沒有加括号

AvoidNestedBlocks

檢查是否有嵌套的代碼塊

allowInSwitchCase: 定義是否允許switch case中使用嵌套的代碼塊

ArrayTrailingComma

檢查初始化數祖時,最後一個元素後面是否加了逗号,如果左右大括号都在同一行,則可以不加逗号

AvoidInlineConditionals

檢查是否在同一行初始化, 例如:private int Age = nGe==1 ? 100 : 0; 就應該避免

CovariantEquals

ModifiedControlVariable

檢查循環控制變量是否被修改

SimplifyBooleanExpression

檢查是否有boolean使用備援的地方,例如:b == true、b || true,應該簡化為 b、b

SimplifyBooleanReturn

檢查是否在傳回boolean值時是否有使用備援的地方,例如:

    if(valid())

        return true;

    else

        return false;

應該改為:

    return valid();

StringLiteralEquality

檢查在判斷字元串是否相等時是否使用了正确的形式

EqualsHashCode

檢查在重寫了equals方法後是否重寫了hashCode方法

FinalLocalVariable

檢查變量值沒有改動的情況下,該變量是否定義成了final

MissingSwitchDefault

檢查switch語句是否忘記了default标簽

RedundantThrows

檢查是否抛出了多餘的異常

DefaultComesLast

檢查switch中default是否在所有case的後面

MissingCtor

檢查類中是否顯式定義了構造器

FallThrough

檢查switch中case後是否加入了跳出語句,例如:return、break、throw、continue

MultipleStringLiterals

檢查一個字元串變量在不改變變量值的情況下或者字元串出現的次數

allowedDuplicates: 定義在類中一個字元串變量在不改變變量值的情況下或者字元串所能使用的最多次數

MultipleVariableDeclarations

檢查一次聲明多個變量時,變量是否在同一行或者在同一個語句中

RequireThis

檢查是否使用了this

checkFields: 是否檢查變量引用

checkMethods: 是否檢查方法調用

UnnecessaryParentheses

檢查是否使用了多餘的小括号

VisibilityModifier

檢查變量是否對外部可見

packageAllowed: 變量包内成員可以通路

protectedAllowed: 變量是受保護的

publicMemberPattern: 可以公開通路的變量所比對的命名形式

FinalClass

隻有私有構造器的類必須聲明為final

InterfaceIsType

檢查接口是否隻定義了變量而沒有定義方法,因為接口應該用來描述一個類型,是以隻定義變量而不定義方法是不恰當的

allowMarkerInterfaces: 是否檢查空接口

HideUtilityClassConstructor

隻定義了靜态方法的類不應該定義一個公有的構造器

DesignForExtension

檢查類是否被設計為可擴充的,如果是,則方法應該abstract、final或者是空的

ThrowsCount

檢查抛出異常的數量

max: 定義抛出異常的最大數目

StrictDuplicateCode

檢查類中是否有代碼複制的問題

min: 允許代碼重複的最小行數

charset: 檔案所用的字元集

BooleanExpressionComplexity

max: 布爾運算符在一條語句中允許出現的最大數目

GenericIllegalRegexp

檢查代碼中是否有不合适的引用形式或者字元

format: 定義檢查所比對的類型

ignoreCase: 是否區分大小寫

ignoreComments: 是否忽略注釋

message: 出現問題應該顯示給使用者的資訊

NewlineAtEndOfFile

檢查檔案是否以一個新行結束

lineSeparator: 行分隔符的類型,windows是crlf

UncommentedMain

檢查是否有沒有被注掉或者删除的main方法

excludedClasses: 定義可以帶main方法的類所比對的名字形式

UpperEll

檢查初始化長整型變量時,數字後是加了大寫字母'L'而不是小寫字母'l'

ArrayTypeStyle

檢查再定義數組時,采用java風格還是c風格,例如:int[] num是java風格,int num[]是c風格

javaStyle: 定義是否采用java風格定義數組

FinalParameters

檢查參數是否是常量

Indentation

檢查代碼的縮進是否符合要求

basicOffset: 定義代碼體相對于所屬的代碼體的縮進量

braceAdjustment: 定義括号的縮進量

caseIndent: 定義case的縮進量

RequiredRegexp

檢查檔案中是否存在相應的文字

format: 定義所比對的形式

usage.OneMethodPrivateField

檢查是否隻有一個方法通路了私有變量

ignoreFormat: 定義可以忽略的變量所比對的命名形式

usage.UnusedLocalVariable

檢查是否有命名後沒有使用的變量

usage.UnusedParameter

檢查是否有沒有使用的參數

ignoreCatch: 是否忽略catch中的參數

ignoreNonLocal: 是否忽略非本地的變量

usage.UnusedPrivateField

檢查是否存在未被使用的私有成員變量

usage.UnusedPrivateMethod

檢查是否存在未被使用的私有方法