GradleでCheckStyleによる静的解析を行いたい

n-ozawan

皆さん、こんにちは。技術開発グループの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から大量の指摘が来ますので、導入する際は計画的にした方が良いでしょう。

ではまた。

Recommendおすすめブログ