Edited at

IntelliJをLombokに対応させる


はじめに

「新人エンジニア Advent Calendar 2016」 の4日目担当の@h6akhです。詳しい自己紹介はこちらです。

自分が実践している業務効率化が本Advent Calenderのテーマらしいですが、特筆すべきエピソードがないので、些細なことでも書こうと思います。書く内容は、IntelliJにLombokを対応させる方法です。


IntelliJとは

IntelliJは、JetBrains社が開発・販売しているJava用の有償IDEです。Windows、Mac、Linuxで使用できます。プラグインを用いれば、Java以外の様々な言語に対応させることができます。

日本にはJetBrains公認代理店のサムライズム社があるので、日本でIntelliJを購入する際はそこを利用するのが良いと思います。

http://samuraism.com/products/jetbrains/intellij-idea


Lombokとは

LombokはJavaのライブラリで、コードにアノテーションを追加するだけで、コンパイル時に、getter、setter等のメソッドを勝手に生成してくれるというものです。getterやsetterをいちいち書かずに済むので、コーディングの手間が省けますし、コードもスッキリします。

詳しくは

等を参照して下さい。


IntelliJ + Lombokに至った経緯

IntelliJをLombokに対応させる方法について説明する前に、業務でIntelliJ + Lombokに至った経緯について述べようと思います。

Lombokに出会ったのきっかけは、前任者からのプログラムの引き継ぎです。引き継いだプログラムにLombokが使用されていました。

前任者はIDEとしてEclipseを使用して開発を行っていました。しかし、私は入社した時からIntelliJで開発を行っていたので、そのプログラムのためにわざわざEclipseを使用する気が起きませんでした。

そういう理由から、IntelliJをLombokに対応させるという行為に至ったのです。


IntelliJをLombokに対応させる

ここから本題のIntelliJをLombokに対応させる方法について説明しようと思います。


IntelliJでの問題点

IntelliJでLombokを利用したコードを書こうとすると問題が起きます。

例えば、

@Getter

class ExampleClass {
private int hoge;
// ...
}

と風に@Getterというアノテーションをつければ、コンパイル時にExampleClassgetHogeメソッドを生成してくれます。

しかし、getHogeメソッドはコンパイル時に生成されるので、IntelliJ上では定義されていないメソッドとして認識されます。このとき、


  • メソッドからそのメソッドが定義されているクラスにジャンプできない

  • メソッド名入力中にgetHogeが候補に出てこない

という風にIntelliJの便利機能の一部が効かなくなります。


対応策

Lombok Pluginを用いれば、上記の問題を解決できます。

プラグインのインストール方法は簡単です。


  1. プラグインの設定画面に行きます

  2. 画面の下部にある「Browse repositories...」ボタンを選択

  3. 新しく出現したウィンドウで、lombokを検索

  4. 検索結果から「Lombok Plugin」を選択、Installボタンを押す

  5. 少し待ってから、ウィンドウを閉じます

  6. プラグイン設定画面に戻り、右下のOKボタンを推します

  7. 再起動を促すダイアログが出てくるので、そこで「Restart」ボタンを押す

  8. IntelliJの再起動が済んだら、プラグインのインストールは完了です