CheckStyleとは
Javaの静的解析ツールの一種で、コーディング規約に従ってコードが書かれているかどうかをチェックするためのものである。
インデントが汚かったり、改行のポイントが汚かったりするところを指摘してくれる。
ディレクトリ構成
Spring Initializrでプロジェクトを初期化したばかりの、下記のディレクトリ構成を例に解説する。
$ tree . -L 1
.
├── HELP.md
├── README.md
├── build
├── build.gradle
├── config // configディレクトリは新規作成。ここにcheckstyleのファイルを格納
├── gradle
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
4 directories, 6 files
手順
1.Googleが用意してるxmlファイルをダウンロードする
上記でxmlファイルが配布されているので、./config/google_checks.xml
としてダウンロードする。
これにはインデントや改行、命名規則などのルールが記載されている。
2.Gradleの設定を書き換える
build.gradle
ファイルの最後に、下記のように追加する。
configFile
の指定で、ルールが書かれているファイルの場所を指定する。
// 省略
apply plugin: 'checkstyle'
checkstyle {
toolVersion '8.16'
configFile file('./config/google_checks.xml')
}
3.CheckStyleを実行してみる
下記のコマンドでコードチェックを行う。
$ ./gradlew check
[ant:checkstyle] [WARN] /Users/username/spring-webflux-sample/src/main/java/com/example/springwebfluxsample/SpringWebfluxSampleApplication.java:9: 'method def modifier' のインデントレ ベル 8 は正しくありません。期待されるレベルは 2 です。 [Indentation]
...
SpringWebFluxSampleApplication.java
ファイルのインデントがルールに準拠していないため怒られていることが分かる。
4.レポートを確認
デフォルトではHTML形式のレポートが./build/reports/checkstyle/main.html
と./build/reports/checkstyle/test.html
に出力される。
このファイルをChromeなどのブラウザで開くと、より分かりやすい形式で指摘内容を確認することができる。
IntelliJの自動フォーマット機能を活かす場合
IntelliJの環境も同時に整えておくと、Command + Option + L
キーで
ルールに沿って自動整形できるようになる。
1.CheckStyle-IDEAプラグインをインストール
こちらからプラグインをインストールする。
Command + ,
で設定を開き、Plugins→歯車マーク→Install Plugin from Disk...
をクリックし、
ダウンロードしたzipファイルを指定すると、プラグインが適用される。
2.xmlファイルを適用する
Command + ,
で設定を開き、「Editor→Code Style→歯車マーク→Import Scheme→CheckStyle Configuration
」をクリックし、最初にダウンロードしたxmlファイルを選択する。
この設定が完了後、「Command + Option + L
」のショートカットを実行すると
コードが自動でフォーマットされていることが分かる。
$ ./gradlew check
BUILD SUCCESSFUL in 6s
6 actionable tasks: 6 executed
チェックコマンドを実行しても怒られないようになる。
まとめ
- ルールが書かれている設定ファイルを配置
- 対象のファイルを読み込む記述を追加
- コマンド実行すると解析される