Javaの静的解析ツールのCheckstyleを導入したので手順を書く。

環境

  • Gradle 6.5
  • Checkstyle 8.35

導入

GradleにCheckstyleプラグインを適用

build.gradleplugins {
    id 'checkstyle' // checkstyleを適用する
}

checkstyle {
    toolVersion = '8.35' // gradleがバンドルしているcheckstyle以外のバージョンを利用する場合
    maxWarnings = 0 // 許容するWARNレベルの個数
}

CheckStyleの定義ファイルを作成

デフォルトの設定では、checkstyleの定義ファイルはconfig/checkstyle/checkstyle.xmlから読み込まれる。

Googleが提供しているJavaコーディング規約がそれなりに厳格なので、こちらをベースとする。
https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

上記のxmlをconfig/checkstyle/checkstyle.xmlに配置する。

実行

Checkstyleを適用することでGradleのタスク一覧に以下のタスクが追加され実行可能となる。

  • checkstyleMain
  • checkstyleTest

また、checkタスクにcheckstyleMainとcheckstyleTestが依存関係として追加される。

checkタスクの実行

CheckStyleの定義ファイルに記載したルールに違反している場合、以下のようなメッセージが出力されてタスクが失敗する。

> Task :application:checkstyleMain FAILED
[ant:checkstyle] [WARN] /Hoge.java:16: 行が 100 文字を超えています (104 個見つかりました)。 [LineLength]
[ant:checkstyle] [WARN] /Hoge.java:24: 行が 100 文字を超えています (103 個見つかりました)。 [LineLength]

Execution failed for task ':application:checkstyleMain'.
> Checkstyle rule violations were found. See the report at: file:///application/build/reports/checkstyle/main.html
  Checkstyle files with violations: 2
  Checkstyle violations by severity: [warning:2]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.