Checkstyle Javaルール

CheckstyleのJavaルールについて1つずつまとめます

AtclauseOrder

CheckStyle公式ドキュメント

検証環境

Checkstyleバージョン:10.3.3
Javaバージョン:17


チェック概要

チェック追加バージョン
Checkstyle 6.0

JavadocブロックタグまたはJavadocタグの順序をチェックする。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
violateExecution OnNonTightHtml boolean false JavadocTight-HTMLルールに違反している場合、違反を表示するタイミングを制御するかどうか 8.3
target トークンの サブセット CLASS_DEF,
COMPACT_CTOR_DEF,
CTOR_DEF,
ENUM_DEF,
INTERFACE_DEF,
METHOD_DEF,
RECORD_DEF,
VARIABLE_DEF
対象となるブロックタグを指定する 6.0
tagOrder String[] @author,
@deprecated,
@exception,
@param,
@return,
@see,
@serial,
@serialData,
@serialField,
@since,
@throws,
@version
タグの順番を指定する 6.0

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="AtclauseOrder"/>
    </module>
</module>

チェック実行例

// OK
/**
* Some javadoc.
*
* @author Some javadoc.
* @since Some javadoc.
* @version Some javadoc.
*/
class MyClass implements Serializable {
}

// NG tagOrderの順番と異なる
/**
* Some javadoc.
*
* @since Some javadoc.
* @version Some javadoc.
* @author Some javadoc.
*/
class MyClass implements Serializable {
}

プロパティ設定あり

target

対象となるブロックタグ

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="JavadocBlockTagLocation">
            <property name="target" value="METHOD_DEF"/>
        </module>
    </module>
</module>

チェック実行例

// OK クラス宣言はチェック対象外
/**
* Some javadoc.
*
* @since Some javadoc.
* @version Some javadoc.
* @author Some javadoc.
*/
class MyClass implements Serializable {
}

tagOrder

タグの順序

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="JavadocBlockTagLocation">
            <property name="tagOrder" value="@throws, @author, @deprecated, @exception, @param, @return, @see, @serial, @serialData, @serialField, @since, @version"/>
        </module>
    </module>
</module>

チェック実行例

// OK
/**
* Some javadoc.
*
* @throws Some javadoc.
* @author Some javadoc.
* @version Some javadoc.
*/
class MyClass implements Serializable {
}

// NG
/**
* Some javadoc.
*
* @author Some javadoc.
* @version Some javadoc..
* @throws Some javadoc. // NG tagOrderの順番と異なる
*/
class MyClass implements Serializable {
}