web-dev-qa-db-ja.com

IntelliJ IDEAでLombokを使用しているときにプロジェクトをコンパイルできない

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

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

したがって、Slf4jを使用するクラスがあります。このように注釈を付けました

import lombok.extern.slf4j.Slf4j;

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

しかし、プロジェクトコンパイラspitsをビルドすると、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 に切り替えました。

163
expert

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

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

IDEA 2016.2の場合:

環境設定...>ビルド、実行、展開>コンパイラー>注釈プロセッサー

340
user2021572

注釈処理を有効にすると機能します

ただし、Macを使用している場合は、bothplacesから注釈処理を有効にしてください(チェックボックスをオンにします) -)利用可能。

1.)Intellij Idea-> Preferences-> Compiler-> Annotation Processors

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

71
greperror

この問題を解決する画像。

最初に注釈プロセッサを有効にしてから試してください。これは動作する場合と動作しない場合があります。 enter image description here

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

enter image description here

41
CodeShadow

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

7
Omri Sivan

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

6
mt.uulu

これらの手順を次のように両方チェックした場合

  1. 注釈を有効にする:これは、IntelliJ設定で行われるチェックです。
  2. IntelliJ classPathへのロンボクのインポート(設定->プラグイン)

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

コンパイラーは、[設定]-> [ビルド、実行、展開]-> [コンパイラー]-> Javaコンパイラーで確認できます。

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

6
Saurabh Saha

IntelliJ 2018.3を使用して参照するために、3つの手順に従ってこの問題を解決しました(@Dataアノテーションを使用してgetter/setterを挿入)。

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

enter image description here

忘れずに変更を適用.

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

enter image description here

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

ご多幸を祈る :)

5
Hearen

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

4
mplushnikov

私はMacにいました

これは私のIntelliJ IDEAおよびMacバージョンです-IntelliJ IDEA 2017.1.5ビルド#IU-171.4694.70 --- Mac OS X 10.12

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

1.)Intellij IDEA-> Preferences-> Compiler-> Annotation Processors

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

動作させるにはLombokプラグインもインストールする必要がありました。

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

3
so-random-dude

1、IDEAのlombokプラグインをインストール

Intellij Idea->設定->プラグイン->ロンボクを入力->リポジトリで検索->インストール-> IDEAを再起動

2、ロンボクプラグインの設定

注釈処理を有効にすると機能します

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

Intellij Idea-> Preferences-> Build、Execution、Deployment-> Compiler-> Annotation Processors、「注釈処理を有効にする」のチェックボックスをチェックします。ファイル->その他の設定->デフォルト設定->ビルド、実行、展開->コンパイラ->注釈プロセッサ、「注釈処理を有効にする」のチェックボックスをチェックします。

2
Bruce

まだ問題を抱えているあなたのために:

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

2
JasnaRB

上記のソリューションのいずれでもうまくいきませんでした。 <scope>provided</scope>をpom.xmlの依存関係に追加し、機能しました。

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>
1
Shreya Mishra

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

0
John Chapman

属性fooがブール値の場合、Lombok @DataによってisFoo()ではなくgetFoo()が提供されます。

0
Yao Li

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

0
user64141

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

最初に、他の回答に記載されているように、プラグインがインストールされ、注釈処理が有効になっていることを確認します。

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

ライブラリを確認し、その範囲をプロジェクト設定/モジュール/依存関係タブで確認できます(そこにあるロンボクを検索します)

0
wst

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

0
cybersoft

正しく追加されていることを確認してください

dependencies {
 ...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'

}
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
0

IntelliJ IDEA 2017.1.3でlombokを使用している場合、これを行うことでcannot find symbol variable logを修正できます。

IntelliJ設定>ビルド、実行、展開>注釈プロセッサ> [チェック]注釈処理を有効にする>適用

0
realPK

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

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

問題を解決するには

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

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

ロンボクの更新方法

プロジェクトの再構築方法

FWIW-上記のようにコンパイラー注釈を設定するときは、「Mavenデフォルト注釈プロセッサー」など、使用しているプロファイルも確認してください。

0
l8Again

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

0
Srikanth Reddy

Faced similar problem. Below fixed worked for me.
download(ここから[ https://projectlombok.org/download] [1] )をダウンロードし、プロジェクト構造にjarを追加します。

ステップ:ファイル->プロジェクト構造->グローバルライブラリ

0
krishna Murari

私は同じ問題を抱えていたので、今後の私の忘却の参考のためにここに置いておきます。

Alt+Enter注釈で@Slf4jingを実行すると、誤って無効なインポートを選択しました。したがって、コードがコンパイルされない場合は、必ずインポートしてください。

import lombok.extern.slf4j.Slf4j;

0