この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

CheckStyle5

Eclipse3.5へのバージョンアップに伴い、CheckStyleはメジャーバージョンが上がりました(CheckStyle4 → CheckStyle5)。
これにより、以前のcheckstyle設定ファイルは修正しないと使えなくなりました。


僕が修正した点は次の通りです。

  1. charset要素をTreeWalker要素からルート要素の直下へ移動した。
  2. FileLengthモジュールをTreeWalker要素からルート要素の直下へと移動した。


現在使っているCheckStyle5向け設定ファイルを置いておきます。

checkstyle.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (C) 2009 root42 Inc. All rights reserved.
-->
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
    <property name="severity" value="warning"/>
    <property name="charset" value="UTF-8"/>
    <!-- module name="PackageHtml"/-->
    <module name="NewlineAtEndOfFile"/>
    <module name="FileLength"/>
    <module name="TreeWalker">
        <module name="AvoidStarImport"/>
        <module name="IllegalImport"/>
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>
        <module name="MethodLength"/>
        <module name="AnonInnerLength"/>
        <module name="ParameterNumber"/>
        <module name="ModifierOrder"/>
        <module name="RedundantModifier"/>
        <module name="EmptyBlock"/>
        <module name="AvoidNestedBlocks"/>
        <module name="JavadocType"/>
        <module name="JavadocMethod"/>
        <module name="JavadocVariable"/>
        <module name="JavadocStyle">
            <property name="checkFirstSentence" value="false"/>
        </module>
        <!-- module name="ArrayTrailingComma"/-->
        <module name="CovariantEquals"/>
        <module name="DeclarationOrder"/>
        <module name="DefaultComesLast"/>
        <module name="DoubleCheckedLocking"/>
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <module name="ExplicitInitialization"/>
        <module name="FallThrough"/>
        <module name="MissingSwitchDefault"/>
        <module name="ParameterAssignment"/>
        <module name="IllegalCatch">
            <property name="illegalClassNames" value="java.lang.Throwable"/>
        </module>
        <module name="IllegalInstantiation">
            <property name="classes" value="
                java.lang.String,
                java.lang.Object
                java.lang.Integer,
                java.lang.Long,
                java.lang.Short,
                java.lang.Double,
                java.lang.Float,
                java.lang.Byte,
                java.lang.Boolean" />
        </module>
        <module name="InnerAssignment"/>
        <module name="JUnitTestCase"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="NestedIfDepth">
            <property name="max" value="2"/>
        </module>
        <module name="NestedTryDepth"/>
        <module name="PackageDeclaration"/>
        <module name="RedundantThrows">
            <property name="allowUnchecked" value="true"/>
        </module>
        <module name="ReturnCount">
            <property name="max" value="5"/>
        </module>
        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>
        <module name="StringLiteralEquality"/>
        <module name="SuperClone"/>
        <module name="SuperFinalize"/>
        <!-- module name="UnnecessaryParentheses"/-->
        <module name="ArrayTypeStyle"/>
        <module name="UncommentedMain">
            <!-- property name="excludedClasses" value="Command$"/-->
        </module>
        <module name="UpperEll"/>
        <module name="FinalClass"/>
        <module name="FinalParameters"/>
        <module name="HideUtilityClassConstructor"/>
        <module name="InterfaceIsType"/>
        <module name="MutableException"/>
        <module name="VisibilityModifier"/>
        <module name="BooleanExpressionComplexity"/>
        <module name="ClassDataAbstractionCoupling">
            <property name="max" value="10" />
        </module>
        <module name="ClassFanOutComplexity">
            <!-- property name="max" value="100"/ -->
        </module>
        <module name="CyclomaticComplexity"/>
        <module name="NPathComplexity"/>
        <module name="PackageName"/>
        <module name="TypeName"/>
        <module name="ConstantName"/>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="StaticVariableName"/>
        <module name="MemberName"/>
        <module name="ParameterName"/>
        <module name="MethodName"/>
        <module name="ExecutableStatementCount"/>
        <module name="ThrowsCount">
            <property name="max" value="3"/>
        </module>
        <module name="NestedIfDepth">
            <property name="max" value="3"/>
        </module>
        <module name="NestedTryDepth">
            <property name="max" value="3"/>
        </module>
        <module name="ModifiedControlVariable"/>
        <module name="MultipleStringLiterals">
          <property name="allowedDuplicates" value="2"/>
          <property name="ignoreStringsRegexp" value="^&quot;&quot;$|^&quot;.*is null&quot;$|^&quot;\p{Punct}+&quot;"/>
        </module>
        <!-- module name="RequireThis"/-->
    </module>
</module>