なにか作る

なにかを作るブログです。

Spotless を使って Java コードのフォーマットチェック、フォーマット適用を実現する

create-something.hatenadiary.jp

前回のエントリで EclipseIntelliJ で共通で使えるコードフォーマット環境を整えた。適切に IDE で設定を行なっている限りにおいてはこれでコードフォーマットがずれることはない。

ずれることはないのだが、別のエディターで一部のファイルを書き換えただとか、IDE を切り替えるときに設定が漏れていただとか様々な理由でコードフォーマットがずれることはありうるもの。それに加えて、コードフォーマットのルールを途中で変更することもあるので、できればそのときには既存のコードのフォーマットも一括で変更してしまいたい。

みたいなことを考えていたところ、一つよさそうなツールを見つけた。

github.com

この Spotless を使うと

  • プロジェクト内の Java コードが定められたフォーマットに沿っているかのチェック
  • プロジェクト内の Java コードすべてを定められたフォーマットで一括フォーマット

が実現できる。

Gradle だとこんな感じ。

plugins {
    id "com.diffplug.gradle.spotless" version "3.13.0"
}

spotless {
    java {
        googleJavaFormat('1.6')
    }
}

Google Java Style には標準で対応してる。

独自のコードフォーマットを使う場合には、Eclipse のコードフォーマット設定ファイルをエクスポートして指定することもできる。

あとはタスクを実行するだけ。

# フォーマットチェック
gradle spotlessCheck

# フォーマット適用
gradle spotlessApply