1. 概要

Lombok は、多くの面倒なタスクを容易にし、Javaソースコードの冗長性を減らすライブラリです。

もちろん、通常はIDEでライブラリを使用できるようにしたいので、追加のセットアップが必要です。

このチュートリアルでは、最も人気のある2つのJavaIDEであるIntelliJIDEAとEclipseでのLombokの構成について説明します。

2. IntelliJIDEAのロンボク

IntelliJバージョン2020.3以降、Lombokを使用するようにIDEを構成する必要はありません。IDEにはプラグインがバンドルされています。 また、アノテーション処理が自動的に有効になります。

IntelliJの以前のバージョンでは、Lombokを使用するために以下の手順を実行する必要があります。 また、最新バージョンを使用していて、IDEがLombokアノテーションを認識しない場合は、以下の構成が手動で無効にされていないことを確認する必要があります。

2.1. 注釈処理の有効化

Lombokは、APTによる注釈処理を使用します。 したがって、コンパイラがそれを呼び出すと、ライブラリは元の注釈に基づいて新しいソースファイルを生成します。

ただし、注釈処理はデフォルトでは有効になっていません。

したがって、最初に行うことは、プロジェクトで注釈処理を有効にすることです。

設定に移動する必要があります| ビルド、実行、展開| コンパイラ| 注釈プロセッサおよび次のことを確認してください。

  • 注釈処理を有効にするボックスがオンになっている
  • プロジェクトクラスパスからプロセッサを取得オプションが選択されている

2.2. IDEプラグインのインストール

Lombokはコンパイル中にのみコードを生成しますが、IDEは生のソースコードのエラーを強調表示します。

IntelliJに生成されるソースコードを認識させる専用のプラグインがあります。 インストール後、エラーはなくなり、使用法の検索やナビゲートなどの通常の機能が動作を開始します。

設定に移動する必要があります| プラグインマーケットプレイスタブを開き、「lombok」と入力して、MichailPlushnikovによるLombokプラグインを選択します。

次に、プラグインページのインストールボタンをクリックします。

インストール後、 IDEの再起動ボタンをクリックします:

3. Eclipseのロンボク

Eclipse IDEを使用している場合は、最初にLombokjarを取得する必要があります。 最新バージョンはMavenCentralにあります。

この例では、lombok-1.18.4.jarを使用しています。

次に、 java -jar コマンドを使用してjarを実行すると、インストーラーUIが開きます。 これにより、使用可能なすべてのEclipseインストールが自動的に検出されますが、場所を手動で指定することもできます。

インストールを選択したら、インストール/更新ボタンを押します。

インストールが成功したら、インストーラーを終了できます。

プラグインをインストールした後、IDEを再起動し、Lombokが正しく構成されていることを確認する必要があります。 これは、Aboutダイアログで確認できます。

4. コンパイルクラスパスへのLombokの追加

最後の残りの部分は、Lombokバイナリがコンパイラのクラスパスにあることを確認することです。 Mavenを使用して、pom.xmlに依存関係を追加できます。

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

最新バージョンはMavenCentralにあります。

これですべてがうまくいくはずです。 ソースコードは、IDEにエラーなしで表示され、正しくコンパイルおよび実行されている必要があります。

public class UserIntegrationTest {

    @Test
    public void givenAnnotatedUser_thenHasGettersAndSetters() {
        User user = new User();
        user.setFirstName("Test");
        assertEquals(user.gerFirstName(), "Test");
    }

    @Getter @Setter
    class User {
        private String firstName;
    }
}

5. 結論

Lombokは、Javaの冗長性を減らし、内部で定型文をカバーするという素晴らしい仕事をしています。 この記事では、最も人気のある2つのJavaIDE用にツールを構成する方法を確認しました。

例のソースコードは、GitHubから入手できます。