IntelliJ IDEA と Eclipse で Java の共通のコードフォーマットを実現するいくつかの方法
※2018/6/21 IntelliJ で Eclipse のコードフォーマット設定をインポートする機能の追記および修正
Eclipse 中心の Java 開発チームに IntelliJ を導入しようとするときに、一番にネックとなるのがコードフォーマット設定。フォーマット設定が IDE 間でずれているとファイルを編集したときに無用な編集が入ってしまい、チーム開発ではノイズとなってしまう。
新規開発で検討していたところ、いくつか方法があったのでご紹介。
- IntelliJ で Eclipse のコードフォーマット設定をインポートする
- Eclipse Code Formatter Plugin を使う
- google-java-format を使う
- Spring Java Format を使う
IntelliJ で Eclipse のコードフォーマット設定をインポートする
IntelliJ には標準で Eclipse のコードフォーマット設定をインポートする機能が用意されているらしい。
Eclipse でコードフォーマット設定をエクスポートして、IntelliJ 側でその設定をインポートする形式。既に Eclipse を使ってカスタマイズされたコードフォーマットがあって、それを IntelliJ でも使っていきたいという場合にはこれを使うのがよさそうだ。
ただし、上述のサイトで触れられているように、Eclipse と IntelliJ のフォーマッターには微妙な不一致があって完全な互換性が無いようだ。この方式を取る場合は些細なフォーマットの違いには目を瞑る必要がありそうだ。
Eclipse Code Formatter Plugin を使う
IntelliJ には Eclipse のコードフォーマッターを直接使用するためのプラグインがサードパーティから提供されていて、これを使うと Eclipse で作成したコードフォーマット設定を IntelliJ 側でインポートして使うことができる。
このプラグインは Eclipse のコードフォーマット設定を IntelliJ のコードフォーマット設定に変換するのではなく、IntelliJ 上で Eclipse のコードフォーマット機能を直接使うという形式のもののようなので、「IntelliJ で Eclipse のコードフォーマット設定をインポートする」よりも高い相互運用性を保つことができるはずだ。
google-java-format を使う
新規の開発であったり、現状の開発でのコードフォーマットに特にこだわりがない場合は、Google 社が出しているコードスタイル Google Java Style に従うのが楽。
Google から IntelliJ と Eclipse 用のコードフォーマットプラグインが提供されているので、それぞれ IDE にインストールして設定することで共通のフォーマットを使用することが可能だ。
Spring Java Format を使う
Google 同様に Spring チームも Spring のコードスタイルに沿ったフォーマット用プラグインの提供を始めたらしい。
Maven や Gradle と一体化していたり、Checkstyle が標準で付属していたりなど、google-java-format に比べて All-in-one かつ導入が容易になっている点で魅力的。
ただし、初コミットが 2018/4/20 とかなり新しく、バージョンもまだ 0.0.3 なので使用するにはまだ早いかもしれない(2018/6/19現在)。