253

IntelliJIDEA11を使用して開発しているプロジェクトでLombokを使用しようとしています。

IDEA用のサードパーティプラグインをインストールしましたが、IDEAはすべての自動生成されたメソッド/フィールドを参照するため、正常に機能しているようです。

だから私はSlf4jを使用するクラスを持っています。このように注釈を付けました

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

しかし、プロジェクトコンパイラをビルドすると、次のようになりcannot find symbol variable logます。

ここで欠けているものを教えてください。

更新:失敗するのはRequestFactoryアノテーションプロセスであることが判明しました。

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log

回避策に関するアイデアはありますか?

Update2:おそらくそれは読者が聞きたいものではないかもしれませんが、私は結局Scalaに切り替えました。

4

40 に答える 40

482

IDEA 12で、Enable annotation processing次のチェックボックスを設定して修正しました。

[設定]->[コンパイラ]->[注釈プロセッサ]

IDEA 2016.2の場合:

環境設定...>ビルド、実行、デプロイ>コンパイラ>アノテーションプロセッサ

有効にした後、[ビルド]-> [プロジェクトの再ビルド]を実行して、注釈を認識させ、エラーを排除します。


IDEA 2019.2.1の場合、プロジェクトの構成方法によっては、ProjectLombokプラグインをインストールするだけでは不十分な場合があります。IntelliJIDEAでProjectLombokを使用する別の方法は次のとおりです。

  1. https://projectlombok.org/downloadにアクセスします
  2. JARファイルをプロジェクトのlibディレクトリにダウンロードします(例:)$HOME/dev/java/project/libs
  3. IDEを起動します。
  4. [ファイル設定]をクリックします。
  5. Build、Execution、DeploymentCompiler注釈プロセッサを展開します。
  6. [注釈処理を有効にする]がオンになっていることを確認します。
  7. プロジェクトのモジュール設定に基づいて[ストアがソースを生成する]が選択されていることを確認します(モジュール出力ディレクトリが機能しない場合は、戻って他の設定を試してください)。
  8. [適用]をクリックします。
  9. プラグインをクリックします。
  10. [マーケットプレイス]をクリックします。
  11. 検索フィールドを次のように設定します。lombok
  12. Lombokをインストールします。
  13. [ OK]をクリックします。
  14. プロンプトが表示されたら、IDEを再起動します。
  15. [ファイルプロジェクト構造]をクリックします。
  16. ライブラリを選択します。
  17. +記号をクリックして、新しいプロジェクトライブラリを追加します(またはAlt+を押しInsertます)。
  18. Javaを選択します。
  19. パスを次のように設定します。$HOME/dev/java/project/libs/lombok.jar
  20. [ OK]をクリックします。
  21. 適用するモジュールを選択します。
  22. [ OK]をクリックします。
  23. 必要に応じて、名前をに変更lombokProject Lombok 1.18.8ます。
  24. [ OK]をクリックします。

これで、プロジェクトはパッケージからインポートして、lombokProject Lombokアノテーション(lombok.Setterおよびなどlombok.Getter)を使用できるようになります。

于 2013-01-29T12:09:09.020 に答える
74

注釈処理を有効にすると、機能するようになります

ただし、Macを使用している場合は、使用可能な両方の場所から注釈処理を有効にする(チェックボックスをオンにする)ようにしてください。

1.)IntellijIdea->プリファレンス->コンパイラ->アノテーションプロセッサ

2.)ファイル->その他の設定->デフォルト設定->コンパイラ->注釈プロセッサ

于 2015-05-11T08:21:48.123 に答える
74

この問題を解決するための画像表現。

まず、注釈プロセッサを有効にして試してください。これは機能する場合と機能しない場合があります。 ここに画像の説明を入力してください

それを投稿すると、intellijからlombokプラグインをインストールできます(インストール後、Intellijが再起動してプラグインが有効になるため、作業内容を必ず保存してください(Intellijは、念のため、再起動する前にすべての変更を保存します)。 )以下のスクリーンショット:

ここに画像の説明を入力してください

于 2017-03-15T12:06:17.887 に答える
53
  1. プロジェクトに正しく追加されていることを確認してください。

Gradleの例:

 dependencies {
     compileOnly 'org.projectlombok:lombok:1.18.8'
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     ...
 }
  1. IDE用のLombokプラグインをインストールします
  2. IDE(IntellijIdea)の[注釈処理を有効にする]チェックボックスをオンにします。Eclipseなどの他のIDEにこのようなものがあるかどうかはわかりません。
于 2019-07-14T16:42:50.967 に答える
22

最新のGradleバージョンでは、annotationProcessorを使用する必要があります。

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
于 2020-01-29T14:02:31.723 に答える
18

IntelliJ IDEA 2020.3(Community Edition)を使用しています

ここでは、Lombokプラグインをインストールし、注釈を有効にします(他の回答で説明されています)。また、フラグ-Djps.track.ap.dependencies=falseをビルドプロセスオプション¹に設定する必要がありました。

-javaagentアプローチを使用する必要はなく、クラスパスを設定する必要もありませんでした。

¹。移動:ファイル| 設定| ビルド、実行、展開| コンパイラ| 「共有ビルドプロセスVMオプション」フィールド

参照:

于 2020-12-22T19:55:41.197 に答える
12

IntelliJ 2018.3を使用した参考のために、次の3つの手順に従ってこの問題を解決しました(@Data注釈を使用して挿入)。getter/setter

  1. [ファイル]->[設定]->[ビルド、実行、展開]->[注釈プロセッサ]->[注釈処理を有効にする];

ここに画像の説明を入力してください

変更を適用することを忘れないでください。

  1. 同じ設定ダイアログにプラグインlombokをインストールします。

ここに画像の説明を入力してください

  1. 今のところ十分なようです。IntelliJを再起動してからプロジェクトを再構築する必要があります。

幸運をお祈りしています :)

于 2019-02-19T04:43:22.583 に答える
9

次のようにこれらの両方の手順を確認した場合

  1. 注釈を有効にする:これはIntelliJ設定で行われるチェックです。
  2. lombokをIntelliJクラスパスにインポートする([設定]-> [プラグイン])

それでもエラーが発生する場合は、コンパイラを確認してください-JAVACまたはECLIPSEの場合。

コンパイラーは、「設定」->「ビルド、実行、デプロイメント」->「コンパイラー」->「Javaコンパイラー」で確認できます。

UseコンパイラをJavacに変更します(Eclipseの場合)。これは私のために働いたものです。

于 2017-03-27T13:32:53.070 に答える
7

ここに記載されているように、引用:「外部コンパイラオプションをアクティブにしてアノテーションプロセッサを有効にするか、外部コンパイラを無効にしてすべてのアノテーションコンパイラを無効にしてlombokで動作するようにする必要があります」。これで私の問題は解決しました。このエラーを受け取る前にScalaプラグインを追加したので、プラグインが上記の設定の一部を変更したと思われることに注意してください。

于 2013-07-14T08:14:05.867 に答える
7

intellij用のプラグインがあります。ここを参照してください:https ://projectlombok.org/download.html

于 2015-08-07T13:45:06.733 に答える
6

pom.xmlに以下を含めることは、私にとってうまくいったことです。

<build>
        <defaultGoal>spring-boot:run</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
...
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>       
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
</build>
于 2020-07-12T18:40:19.080 に答える
5

プロジェクトの依存関係としてlombokがありますか?lombok-annotationsのいずれかを使用しているプロジェクトのコンパイル中は、lombok.jarがクラスパス上にある必要があります。

于 2012-02-24T20:18:38.633 に答える
3

まだ問題を抱えている方へ:

注釈プロセッサを有効にしてIntelliJLombokプラグインをインストールする上記の手順に加えて、[ビルド]->[プロジェクトの再構築]も必要でした。

于 2016-08-21T15:14:36.473 に答える
3

1、IDEA用のlombokプラグインをインストールします

IntellijIdea->設定->プラグイン->lombokと入力->リポジトリで検索->インストール->IDEAを再起動

2、configlombokプラグイン

注釈処理を有効にすると、機能するようになります

ただし、Macを使用している場合は、次の2つの場所で注釈処理を有効にしてください。

Intellij Idea->設定->ビルド、実行、展開->コンパイラ->注釈プロセッサ、[注釈処理を有効にする]チェックボックスをオンにします。[ファイル]->[その他の設定]->[デフォルト設定]->[ビルド、実行、展開]->[コンパイラ]->[注釈プロセッサ]で、[注釈処理を有効にする]チェックボックスをオンにします。

于 2017-12-07T06:14:08.707 に答える
3

私はMac

これは私のIntelliJIDEAとMacのバージョンです-IntelliJIDEA2017.1.5ビルド#IU-171.4694.70 --- Mac OS X 10.12

これらの2つの場所で注釈処理を有効にする(チェックボックスをオンにする)ことに加えて。

1.)IntellijIDEA->設定->コンパイラ->注釈プロセッサ

2.)ファイル->その他の設定->デフォルト設定->コンパイラ->注釈プロセッサ

それを機能させるには、Lombokプラグインもインストールする必要がありました。

3.)IntellijIDEA->設定->プラグイン->リポジトリの参照->「Lombok」の検索->プラグインのインストール->IDEAの適用と再起動

于 2018-01-26T22:28:03.960 に答える
3

上記の解決策のいずれでもうまくいきませんでした。<scope>provided</scope>pom.xmlの依存関係に追加 しましたが、機能しました。

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>
于 2018-02-08T20:36:10.763 に答える
1

適切に構成されていて、ライブラリ間およびGradle依存関係リストに表示されている場合でも、IntelliJのクラスパスに含まれていない場合があります。または、そこにありますが、異なるスコープで構成されています(例:コンパイルではなくテスト)。

まず、他の回答で述べられているように、プラグインがインストールされ、注釈処理が有効になっていることを確認してください。

それでも注釈が認識されない場合は、その上にカーソルを置き、Alt + Enter(またはOPTION + ENTER)を押して、メニューオプションがあるかどうかを確認しますAdd library: Gragle: org.projectlombok:lombok:VERSION to class path。あなたがそれを見ることができるならば、これを選んでください、そしてそれはあなたの問題を解決するかもしれません。

ライブラリとそのスコープは、[プロジェクト設定]/[モジュール]/[依存関係]タブで確認できます(そこでlombokを検索してください)

于 2016-10-19T01:32:46.200 に答える
1

IDEAを2018.3に更新した後、この問題に直面しました。既存のプラグインをすべて更新する必要がありました

于 2019-02-28T09:10:41.963 に答える
1

ここですべての提案を試した後、私は別の種類の解決策も見つけました。IDEAがプロジェクトのクラスパスからプロセッサを取得できない場合があるようです。

したがって、 [注釈プロセッサの設定]タブで、プロセッサパスを手動で指定する必要があります。

于 2020-02-11T21:25:19.720 に答える
1

すべての回答で言及されていることとは別に、mvnクリーンインストールを機能させるには、pom.xml構成に以下のコードを追加する必要があります。このコードを追加する前に、ゲッターとセッターのシンボルが見つかりませんでした。

                    <annotationProcessorPath>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.8</version>
                    </annotationProcessorPath>
于 2020-05-13T06:57:30.517 に答える
1

この質問に記載されているすべてのことを実行しても失敗する場合は、プロジェクトの下の/targetフォルダーを削除することを忘れないでください。それでも失敗する場合は、IDEを再起動します。それでも失敗する場合は、コンピュータを再起動してください。

于 2020-10-25T11:59:18.793 に答える
1

Jetbrains IntelliJ IDEAエディターは、バージョン2020.3の時点で、プラグインなしのlombokと互換性があります。

私は2020.2バージョンを使用していましたが、2020.3にアップデートしました。

于 2021-02-17T11:50:42.137 に答える
1

上記のいずれも機能しなかった場合は、[ファイル]->[プロジェクト構造]->[プロジェクト]->[プロジェクト言語レベル]>8 Lambda、タイプアノテーション(SDKデフォルト8ではない)を変更してみてください

これは私のために働いた。

于 2021-12-09T21:47:29.230 に答える
0

JDK8でビルドするときに同様の問題が発生し、プロジェクトをJDK7に戻すと、正常に機能しました。JDK8でコンパイルされない古いバージョンのLombokである可能性があります。

于 2015-03-30T23:29:19.510 に答える
0

ここに示されているすべてのソリューションを試してもソースをコンパイルできない場合は、こちらもご覧ください:ビルダークラスの静的インポートはMavenでのバイトコード生成を中断します-そのような静的インポートがある場合はソースを確認してください。これはMavenプラグインに影響するため、IntelliJIDEA以外の他のビルドシステムではコンパイルが失敗します。

于 2017-07-17T16:20:13.480 に答える
0

私の場合、以下のすべてのものを用意しましたが、それでも機能しませんでした。

  1. lombokプラグインを正しくインストールしました
  2. 注釈プロセッサもチェックされています。
  3. 私のJavaコンパイラはJAVACに設定されました

私の問題を解決するために私はしなければなりませんでした

  1. 2017年10月7日の時点で、ロンボクを最新バージョン(v0.15)に更新します。
  2. IntelliJを再起動します。
  3. プロジェクトを再構築します。

以下のプロジェクトを更新および再構築する方法については、スクリーンショットを参照してください。

lombokを更新する方法

プロジェクトを再構築する方法

于 2017-10-07T01:21:40.393 に答える
0

cannot find symbol variable logIntelliJ IDEA 2017.1.3でlombokを使用する場合は、次のようにして修正できます。

IntelliJプリファレンス>ビルド、実行、デプロイメント>アノテーションプロセッサー>[チェック]アノテーション処理を有効にする>適用

于 2018-02-26T05:30:04.597 に答える
0

以下のプラグインをインストールし、IDEを再起動してエラーを解決します。

File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin

注釈プロセッサを有効にします。

File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
于 2018-09-21T08:50:14.520 に答える
0

私も同様の問題に直面しました。以下は私のために働いた。

ダウンロードして(ここからhttps://projectlombok.org/download)、プロジェクト構造にjarを追加します。

手順:[ファイル]->[プロジェクト構造]->[グローバルライブラリ]

于 2018-09-25T18:42:24.653 に答える
0

上記のように、lombok libsが正しく設定されている場合は、コンパイルされないアノテーションをクリックし、Alt-Enterを押すと、正しいインポートが表示され、コードがコンパイルされます。-それを理解するのに少し時間がかかりました。人々が単純な明白なものを見逃すかもしれない場合に備えて、私はそれをここに置きます。

于 2019-11-11T03:07:55.060 に答える
0

MacOSのEclipseユーザーの場合、これを行います。それは私のために働いた。

  1. lombok.jarをEclipse.app/Contents/MacOSディレクトリにコピーします。
  2. -javaagent:lombok.jarEclipse.app/Contents/Eclipse/eclipse.iniファイルの最後に追加します。
  3. Eclipseを再起動し、プロジェクトのプロパティで「注釈処理」を有効にします。

これを参照する

于 2019-11-26T21:39:07.123 に答える
0

私にとって何がうまくいったか:

  1. インストールしたLombokプラグインを新たにアンインストールしました
  2. 「アノテーションプラグインを有効にする」にチェックを入れました
  3. 同じページで「プロジェクトのクラスパスからプロセッサを取得する」を選択しました
于 2020-05-16T07:56:20.117 に答える
0

IntelliJ IDEA 2020.1.1の場合、Kotlinプラグインを有効にするとこの問題が修正されました。

于 2020-05-20T09:15:47.683 に答える
0

アノテータープロセッサを有効にした後、最新バージョンのlombokに更新する必要がありました。

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

Intellijバージョン:

IntelliJ IDEA 2020.3 (Community Edition)
Build #IC-203.5981.155, built on November 30, 2020
Runtime version: 11.0.9+11-b1145.21 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.16
GC: ParNew, ConcurrentMarkSweep
Memory: 1981M
Cores: 8
Non-Bundled Plugins: org.intellij.plugins.hcl, Lombook Plugin, org.sonarlint.idea, in.1ton.idea.spring.assistant.plugin, org.jetbrains.kotlin, gherkin, cucumber-java
于 2020-12-17T08:53:47.283 に答える
0

私はまだ答えの最後のステップを読んでいないと思います。(Mac + IntelliJ Ultimate 2020.1)私の場合、それはばかげた原因ですが、エラーが直接それを参照していないため、これらは最も時間がかかる可能性があります。

プロジェクトを削除して再クローン化した後、同じロンボクエラーが表示されました。このスレッドで前述した手順を実行した後もエラーが発生しましたが、SKDがデフォルトでバージョン11になっていることがわかりました。これを1.8に戻すと、すべてが再び機能しました。

ファイル->プロジェクト設定->プロジェクトプロジェクトSDKとプロジェクト言語レベルを1.8に変更しました

PSこのIntelliJバージョンでは、Macのデフォルト設定の場所が、前述の場所とは異なります。[ファイル]->[新しいプロジェクト設定]->[新しいプロジェクトの設定]->[ビルド、実行、展開]->[コンパイラ]->[注釈]プロセッサ->'チェック'注釈処理を有効にする

これが誰かに役立つことを願っています

于 2021-03-09T08:09:17.160 に答える
0

これは、ビルドプロセスを実行するJDKバージョンが低すぎるために発生しました。LombokはJDK1.7以降で構築されました。ビルドは、Javaバージョン1.7以降で実行する必要があります。

ここに画像の説明を入力してください

于 2021-09-15T18:55:33.977 に答える
0

@Document追加したばかりの注釈を無効にする必要がありました。プロジェクトをPostgresの代わりにMongoを使用するように変換していて、以前は機能していましたが@Document、Lombokのプロジェクトと競合しているようです。@Getter

于 2021-10-16T09:26:35.923 に答える
0
  1. Lombokプラグインを追加します。
  2. 私の場合は、Mavenをきれいにしてください。
于 2022-01-17T09:15:30.533 に答える
0

私の問題は、IntelliJIDEAにバンドルされているバージョンのLombokプラグインがIntelliJIDEA自体のバージョンと互換性がないことでした。IntelliJを2019.1.4にダウングレードしましたが、機能しました。

ここに画像の説明を入力してください

于 2022-01-20T15:25:52.573 に答える
-3

これを機能させるには、IntelliJ用の「Lombokプラグイン」をインストールするだけです。他のコメント提供者が示唆しているように、「注釈プロセッサ」を有効にすることで何もする必要はありません。(私はこれをIntelliJ IDEAの最新バージョン(現在は2017.1.2)でテストしました)。プラグインをインストールするには、[設定]、[プラグイン]の順に移動し、[リポジトリの参照]ボタンをクリックして、[Lombok]を検索し、Lombokプラグインをインストールします。IntelliJを再起動するように求められます。その後、IntelliJからコンパイルできるようになり、エラー検査を受けることはなくなります。

于 2017-04-28T21:17:36.050 に答える