マニュアル: Checkstyle

投稿日: 更新日:
Java 静的コード解析

設定ファイル

書き方

  • 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: レポート出力に影響する?

重要なモジュール

重大度(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ファイルの拡張子。通常は設定不要。
    • 説明にもある通り、プリプロセッサで何らかの処理をする場合を想定しています。

チェック

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