Checkstyle Javaルール

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

PackageName

CheckStyle公式ドキュメント

検証環境

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


チェック概要

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

パッケージ名が指定の正規表現にマッチしているがどうかをチェックする。
formatのデフォルト値は、Java言語仕様とSunコーディング規約の要件に適合するように選択されている。しかし,アンダースコアも大文字も一般的ではないので,formatに「^[a-z]+( \.[a-z][a-z0-9]*)*$」という値を指定すべきである。

プロパティ

プロパティ デフォルト値 説明 追加バージョン
format Pattern "^[a-z]+(\.[a-zA-Z_][a-zA-Z0-9_]*)*$" パッケージ名の正規表現 3.0

設定+チェック実行結果

プロパティ設定なし

設定ファイル記述方法

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

チェック実行例

// OK
package com;
// NG パッケージ名の正規表現にマッチしない
package COM;
// OK
package com.checkstyle.checks;
// OK
package com.A.checkstyle.checks;
// OK
package com.checkstyle1.checks;
// OK
package com.checkSTYLE.checks;
// OK
package com._checkstyle.checks_;

プロパティ設定あり

format

パッケージ名の正規表現

設定ファイル記述方法

<module name="Checker">
    <module name="TreeWalker">
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
        </module>
    </module>
</module>

チェック実行例

// OK
package com;
// NG 大文字は使用しない
package COM;
// OK
package com.checkstyle.checks;
// NG 大文字は使用しない
package com.A.checkstyle.checks;
// OK
package com.checkstyle1.checks;
// NG 大文字は使用しない
package com.checkSTYLE.checks;
// NG `_`は使用しない
package com._checkstyle.checks_;