GradleでCheckStyleによる静的解析を行いたい
皆さん、こんにちは。技術開発グループのn-ozawanです。
2024年8月21日にNISTが公開したパスワードポリシーに関するガイドラインでは、「パスワードを定期的に変更することをユーザーに要求してはならない」と、強めの表現に代わりました。
本題です。
ソースコードの品質を向上する方法として静的解析ツールがあります。今回はJavaの静的解析ツールとしてCheckStyleをGradleで使う方法を紹介します。
目次
CheckStyle
概要
CheckStyleはJava言語の静的解析ツールです。変数やメソッドなどの命名規則や、空白や改行、JavaDocの書き方まで、幅広くソースコードをチェックしてくれます。CheckStyleを導入することで可読性の向上や、レビューアの負担軽減が期待できます。
インストール
では早速導入してみましょう。環境はGradleです。build.gradle
にCheckStyleプラグインを導入するように記述します。
plugins {
id 'checkstyle'
}
次に、CheckStyleのバージョンを指定します。
checkstyle {
toolVersion = "10.12.4"
}
build.gradle
に最低限必要な記述は以上となります。
CheckStyleの設定ファイル
CheckStyleは、どういうルールに則ってチェックするのかをXML形式で記述します。このXMLはコーディング規約に該当します。このXMLを1から記述するのは大変ですので、CheckStyleのGitHubにあるgoogle_checks.xmlをダウンロードします。
ダウンロードしたgoogle_checks.xmlを`checkstyle.xml`にリネームして、${rootProject.projectDir}/config/checkstyle
フォルダに格納してください。もし、プロジェクトの都合で別のフォルダに格納する必要がある場合は、build.gradle
を以下のように修正します。
checkstyle {
toolVersion = "10.12.4"
configFile = file("${rootProject.projectDir}/google_checks.xml")
}
file("${rootProject.projectDir}/google_checks.xml")
により、プロジェクトのルート直下に格納したgoogle_checks.xml
を読み込むようになります。
なお、XMLの書き方は公式サイトにありますので、必要であればプロジェクトに合わせて修正してください。
実行
CheckStyleでチェックしたい場合は以下のコマンドを実行します。
./gradlew check
上記のコマンドでCheckStyleだけでなく、Gradleにて設定した各種チェック処理を実行してくれます。もし、CheckStyleのみを実行したい場合は以下のコマンドを実行します。
./gradlew checkstyleMain checkstyleTest
レポート出力
メンバー間でCheckStyleの結果を共有したい場合があると思います。${rootProject.projectDir}/build/reports/checkstyle
にHTML形式で出力されていますので、メンバー間で結果を共有することも出来ます。

おわりに
CI/CDで常にCheckStyleでチェックすれば、ソースコードの品質を維持することが出来るようになります。ただ、開発が進んだプロジェクトでは、CheckStyleから大量の指摘が来ますので、導入する際は計画的にした方が良いでしょう。
ではまた。