web-dev-qa-db-ja.com

ロンボクの注釈はIntellijの考えの下ではコンパイルされない

  1. 私はintellijアイデアのためのプラグインをインストールしました(lombok-plugin-0.8.6-13)。
  2. クラスパスにlombok.jarを追加
  3. ゲッターとセッターは構造ウィンドウにあります。そしてIntellijはエラーを示していません。
  4. 設定 - Lombokプラグイン - lombok用のIntellij設定を検証しました、それは "IntelliJの設定は問題ないようです"ことを示しています。

すべて問題ないようです。しかし、私がテストをコンパイルするとき、エラーが来ます:メソッドgetXXXとsetXXXを見つけることができません。

IntelliJで.classファイルを開き、setXXXメソッドとgetXXXメソッドがないことを確認しました。

誰かがその理由を教えてもらえますか?

  • プラグイン:lombok-plugin-0.8.6-13
  • lombok.jar:1.14.0
  • アイデア:Linuxの場合は13.0.2
  • jdk:1.7.0_21
146
yurnom

問題セットを解決するためには:

  • 設定(Ctrl + Alt + S
    • 構築、実行、展開
      • コンパイラ
        • 注釈プロセッサ
          • 注釈処理を有効にする

IntelliJ用のLombokプラグインがインストールされていることを確認してください。

  • 設定->プラグイン
  • "Lombok Plugin"を検索してください
  • リポジトリの参照...をクリックします。
  • Lombok Pluginを選択してください
  • インストール
  • IntelliJを再起動します。
290
mike

あなたがlombokと一緒にEclipseコンパイラを使っているなら、この設定はついに私のために働きました:

  • IDEA 14.1
  • ロンボクプラグイン
  • ... /コンパイラ/Javaコンパイラ>コンパイラの使用: - Eclipse
  • ... /コンパイラ/注釈プロセッサ>注釈処理を有効にします。 - チェックあり(デフォルト設定)
  • ... /コンパイラ>追加のビルドプロセスVM options:- javaagent:lombok.jar

最も重要な部分は最後のものです、私の物は以下のように見えます: enter image description here

IntelliJエディタがゲッターとセッターを認識するためにはプラグインが必要です。Eclipseコンパイラがlombokでコンパイルするにはjavaagentが必要です。

39
Juraj Misur

私にとっては、lombokプラグインとアノテーション処理の両方が必要になります。使用する必要はありませんEclipseおよび追加の- javaagent:lombok.jarオプション。

  • アイデア14.1.3、ビルド141.1010
  • Lombokプラグイン[設定 - >プラグイン - >リポジトリの閲覧 - > 'lombok'の検索 - >インストールしてアイデアを再起動してください。
  • [設定] - > [注釈]を検索 - >注釈プロセッサを入力 - >注釈処理を有効にします。
10
weiheng

あなたがMac上でIntellijを使っているなら、この設定はついに私のために働いた。

インスタレーション:Intellij

  1. Preferencesに行き、Pluginsを検索してください。
  2. プラグイン検索ボックスに「Lombok」と入力します。 Lombokはバンドルされていないプラグインなので、最初は表示されません。
  3. バンドルされていないプラグインを検索するには、「参照」をクリックしてください。
  4. "Lombok Plugin"が表示されるはずです。それを選択してください。
  5. 緑色の「インストール」ボタンをクリックしてください。
  6. 「Intellij IDEAの再起動」ボタンをクリックしてください。

設定:

  1. 注釈プロセッサを有効にする

    • 「設定」 - >「ビルド」、「実行」、「配置」 - >「設定」 - >「コンパイラ」 - >「注釈プロセッサ」の順に選択します。
    • [ファイル] - > [その他の設定] - > [デフォルト設定] - > [コンパイラ] - > [注釈プロセッサ]
  2. Lombokプラグインが有効になっているか確認してください

    • IntelliJ IDEA - >設定 - >その他の設定 - > Lombokプラグイン - > Lombokを有効にする
  3. グローバルライブラリとプロジェクトの依存関係にLombok jarを追加します。

    • 「ファイル」 - >「プロジェクト構造」 - >「グローバルライブラリ」(lombok.jarを追加)
  4. [ファイル] - > [プロジェクト構造] - > [プロジェクト設定] - > [モジュール] - > [依存関係]タブ=チェックlombok

  5. Intellijを再起動します。

9

IDEA 2016.1:

  • インストール lombokプラグイン
  • [設定] - > [コンパイラ] - > [注釈プロセッサ] - > [注釈処理を有効にする]:オン(デフォルト設定)
  • 設定 - >コンパイラ - >注釈プロセッサ - >注釈プロセッサは、 "lombok.launch.AnnotationProcessorHider $ AnnotationProcessor"を追加します。
  • また、mavenを使用している場合は、maven-compiler-plugin構成に追加 - > annotationProcessors - > annotationProcessor:lombok.launch.AnnotationProcessorHider $ AnnotationProcessor

    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>${maven.plugin.compiler.version}</version>
      <configuration>
        <compilerVersion>${Java.version}</compilerVersion>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
        <annotationProcessors>
          <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
        </annotationProcessors>
      </configuration>
    </plugin>
    
8
Jan Kubovy

これら2つの要件が満たされていることを確認してください。

  1. 注釈処理を有効にします。

    設定>ビルド、実行、デプロイ>コンパイラ>注釈プロセッサ>注釈処理を有効にする

  2. Lombokプラグインがインストールされ、プロジェクト用に有効になります。

7
Nikhil Katre

トラブルシューティングに時間をかけすぎると、IntelliJがビルド中にLombokアノテーションを正しく処理できるようにする簡単な回避策が見つかりました。

Gradle-lombokプラグインはこの回避策には必要ありません。 build.gradleに必要なものは以下のとおりです。

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}

回避策は、次のIntelliJ設定をオンにすることです。

  1. IntelliJの設定/設定を開きます。
  2. Build, Execute, Deployment > Build Tools > Gradle > Runnerに移動します
  3. Delegate IDE build/run actions to gradleというラベルの付いたボックスをチェックします。


このページの他の解決策と比較した場合のこの回避策の利点:

  • 注釈処理は不要です。
  • お好みのJavaコンパイラを使用できます(Eclipseコンパイラは必要ありません)。
  • バグの多いgradle-lombokプラグインを使用しないでください(おそらく他の誰かがこれを解決することができます)。
  • VMオプションは不要
  • Lombok jarへのハードコーディングされたパスはありません

1つの欠点は、IntelliJが独自のテストランナーを使用しなくなることです。代わりに、テストは常にGradleを介して実行されます。

6
SonnevilleJ

この質問に対する高度な回答のどれも私にとって問題を解決しませんでした。

私は、pom.xmlファイルのlombokに依存関係を追加することで問題を解決することができました。

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.16.12</version>
</dependency>

IntelliJ 2016.3.14とmaven-3.3.9を使用しています

私の答えがあなたに役立つことを願っています

6
Sahli Ayoub

Itellij 15 CEでは、Lombok Pluginをインストールするだけで十分です(追加の設定は不要)。

3
kecso

私はこの手順に従って、同じようなエラーを見つけました。

mvn idea:clean

mvn idea:アイデア

その後、IDE intellijとコマンドラインの両方からビルドできました。

2
ngonidzashe

これをjavacコンパイラで動作させることはできませんが、同じエラーが発生します。

エラー:(9、14)Java:パッケージlombokが存在しません

私は注釈プロセッサを有効にしました、そしてまたプロジェクトを再構築しようとしました、キャッシュ/再起動を無効にします。助けにはならない。

しかし、私はそれが部分的にEclipseコンパイラで動作するようにしました。部分的に言うのは、ビルドは成功したにもかかわらず、エディタがまだ「シンボルを解決できない」と文句を言うからです。

アイデア - 15.04コミュニティ版ロンボク語 - 1.16.6ロンボク語プラグイン( https://github.com/mplushnikov/lombok-intellij-plugin ) - 0.9.8 JDK - 1.8.0_51

更新:わかりました、ついにこれが機能しました。私のはgradleプロジェクトでした、そしてlombokはカスタムの "提供された"設定として設定されました。 build.gradleでこれを追加した後にうまく働きました

idea {
 module {
     scopes.PROVIDED.plus += [configurations.provided]
    }
}

だから、3つのステップ

  1. ファイル - >設定 - >プラグインからLombokプラグインをインストールしてください。
  2. 注釈プロセッサを有効にする(javacコンパイラも機能します)
  3. Lombokをカスタム設定として追加する場合は、build.gradleまたはpom.xmlを更新してください。
0
robbin