マニュアル: Checkstyle

投稿日: 更新日:

設定ファイル

書き方

  • XMLで記載する。
  • 以下のようにDTDを記載する。
  • モジュールをネストして定義する。
    • 各モジュールの設定に"Parent Module"というのがあるので、このモジュールの下に記載する。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE module PUBLIC
  "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
  "https://checkstyle.org/dtds/configuration_1_3.dtd">

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

モジュールの種類

  • FileSetCheck: ファイルを読み込んでエラーを出す
  • Filter: エラーメッセージなどをフィルタする
  • AuditListener: レポート出力に影響する?

重要なモジュール

  • TreeWalker
    • ソースコード
    • ソースをたどっていくもの。ほとんどのモジュールはこの下に定義されている。

重大度(Severity)

Severity

<property name="severity" value="..." />として定義可能。 設定可能な値は以下の4つ。

  • ignore
  • info
  • warning
  • error

メッセージのカスタマイズ

Custom Messages

<module>の子要素として、 <message key="..." value="..." />のように定義する。

keyとvalueに設定する値は、 各モジュールの説明に "Error Messages" というのがあるので、 そのリンク先から取得できる。

モジュール

TreeWalker

TreeWalker

ファイルを辿っていくモジュールです。 多くのモジュールの親として使われます。

  • tabWidth: タブ文字の幅。LineLength(行の長さチェック)などで使われる。
  • fileExtensions: Javaファイルの拡張子。通常は設定不要。
    • 説明にもある通り、プリプロセッサで何らかの処理をする場合を想定しています。

チェック

モジュール名 親モジュール チェック内容 カスタマイズ
ExplicitInitialization TreeWalker インスタンス変数がデフォルト値で初期化されていないかのチェック 対象をオブジェクトのみにするかどうか
FileLength Checker ファイルの行数チェック 許容する行数、対象ファイル名
TodoComment TreeWalker TODOコメントがないかのチェック 拾うコメント形式