はじめに
Java のシステム開発に限らないのですが、ソースコードの整形方法って人によって異なるし、場合によっては言い争いになりかねないので、開発プロジェクトではコード規約を作って遵守するようにします。
ただ、ソースコードの整形方法を目視で確認するのは、大変労力がかかる上に得るものが少ないものです。
このソースコードの整形を自動でできるツールがあります。
Java では Spotless
が該当します。
Spotless は以下で開発され公開されています。
GitHub - diffplug/spotless: Keep your code spotless
今回は、IntelliJ IDEA で開発する Spring Boot のプロジェクに、Gradle で Spotless を実行できるようにします。
Spotless は Java だけではなく、Kotlin や SQL、TypeScript なども対象にソースコードの整形を行えます。
spotless/plugin-gradle at main · diffplug/spotless · GitHub
ソースコードを整形するルールは、Google が公開している、以下の Google Java Style Guide
を適用します。
Gradle の設定
Graldle の Spotless の最新バージョンは、以下のページで確認できます。
Maven Repository: com.diffplug.spotless » spotless-plugin-gradle
本日(2022/06/20)時点の最新バージョンは、 6.7.2
になります。
build.gradle
に以下のように設定します。
plugins { // Spotless // https://mvnrepository.com/artifact/com.diffplug.spotless/spotless-plugin-gradle id "com.diffplug.spotless" version "6.7.2" } apply plugin: "com.diffplug.spotless" // Google Java Style を Spotless に適用する spotless { java { googleJavaFormat() } }
Spotless の実行
Spring Boot のプロジェクトには、プロジェクトのルートに gradlew
が作成されているので、以下のように Spotless を実行してソースコードを整形します。
$ ./gradlew spotlessApply
例えば、以下のようなソースコードがあるとします。
package com.example.demo; import lombok.Data; public class Sample { public void methodSample(String message) { System.out.println( message ); } }
不要な改行、スペース、import 文がありますが、Spotless 実行後は以下のようになります。
package com.example.demo; public class Sample { public void methodSample(String message) { System.out.println(message); } }
キレイに整形されましたね。
実際の開発プロジェクトでは、もっと対象範囲が広いので効果も大きくなります。
なお、Gradle のコマンドが止まってしまう場合は、以下のコマンドを実行することで問題を回避できます。
$ ./gradlew --stop
おわりに
Spotless によりソースコードの整形を自動化することにより、タブだのインデントのスペース数だのに悩まされることなく開発に集中できるようになります。
Spotless でなくてもよいのですが、ソースコードの自動整形は開発生産性が大きく向上するのでぜひ試してみていただければと思います。