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.