なにか作る

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

IntelliJ IDEA と Eclipse で Java の共通のコードフォーマットを実現するいくつかの方法

※2018/6/21 IntelliJEclipse のコードフォーマット設定をインポートする機能の追記および修正

Eclipse 中心の Java 開発チームに IntelliJ を導入しようとするときに、一番にネックとなるのがコードフォーマット設定。フォーマット設定が IDE 間でずれているとファイルを編集したときに無用な編集が入ってしまい、チーム開発ではノイズとなってしまう。

新規開発で検討していたところ、いくつか方法があったのでご紹介。

IntelliJEclipse のコードフォーマット設定をインポートする

IntelliJ には標準で Eclipse のコードフォーマット設定をインポートする機能が用意されているらしい。

blog.jetbrains.com

www.jetbrains.com

Eclipse でコードフォーマット設定をエクスポートして、IntelliJ 側でその設定をインポートする形式。既に Eclipse を使ってカスタマイズされたコードフォーマットがあって、それを IntelliJ でも使っていきたいという場合にはこれを使うのがよさそうだ。

ただし、上述のサイトで触れられているように、EclipseIntelliJ のフォーマッターには微妙な不一致があって完全な互換性が無いようだ。この方式を取る場合は些細なフォーマットの違いには目を瞑る必要がありそうだ。

Eclipse Code Formatter Plugin を使う

IntelliJ には Eclipse のコードフォーマッターを直接使用するためのプラグインサードパーティから提供されていて、これを使うと Eclipse で作成したコードフォーマット設定を IntelliJ 側でインポートして使うことができる。

plugins.jetbrains.com

このプラグインEclipse のコードフォーマット設定を IntelliJ のコードフォーマット設定に変換するのではなく、IntelliJ 上で Eclipse のコードフォーマット機能を直接使うという形式のもののようなので、「IntelliJEclipse のコードフォーマット設定をインポートする」よりも高い相互運用性を保つことができるはずだ。

google-java-format を使う

新規の開発であったり、現状の開発でのコードフォーマットに特にこだわりがない場合は、Google 社が出しているコードスタイル Google Java Style に従うのが楽。

Google から IntelliJEclipse 用のコードフォーマットプラグインが提供されているので、それぞれ IDE にインストールして設定することで共通のフォーマットを使用することが可能だ。

github.com

Spring Java Format を使う

Google 同様に Spring チームも Spring のコードスタイルに沿ったフォーマット用プラグインの提供を始めたらしい。

github.com

Maven や Gradle と一体化していたり、Checkstyle が標準で付属していたりなど、google-java-format に比べて All-in-one かつ導入が容易になっている点で魅力的。

ただし、初コミットが 2018/4/20 とかなり新しく、バージョンもまだ 0.0.3 なので使用するにはまだ早いかもしれない(2018/6/19現在)。