ロンボクを使用するGradleベースのプロジェクトがあります。このプロジェクトをIntelliJ IDEA 14.1にインポートしました(Import External Modelインポートメソッドを使用)。 GradleでJUnit4の単体テストを問題なく実行できますが、IntelliJにはLombokが生成したGetterを見るのに問題があるようです。これにより、IDEAでテストを実行できません。
セットアップの問題ではないことを確認するために、 非常に単純なプロジェクト を作成し、単純なテストプロジェクトでも同じ問題が発生することを確認しました。
私のバージョン:Gradle:Gradleラッパーを介したgradle-2.3-all
Intellij IDEA:IU-141.713
Lombokプラグイン:0.9.2
ここで何が欠けていますか?
Updatebycannot物理的に見えないという意味ではありません。私はこれを意味します:
/home/meeee/workspace/junit-lombok-idea/lib/src/main/Java/com/example/jumbokea/Main.Java
Error:(10, 11) Java: cannot find symbol
symbol: method setIntField(int)
location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) Java: cannot find symbol
symbol: method getIntField()
location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) Java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
required: no arguments
found: float,com.example.jumbokea.SomeClass
reason: actual and formal argument lists differ in length
Error:(16, 46) Java: cannot find symbol
symbol: method getSomeFloat()
location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) Java: cannot find symbol
symbol: method getSomeClass()
location: variable ac of type com.example.jumbokea.AnotherClass
逆コンパイルされたクラスにはゲッターとセッターが表示されますが、IntelliJで「アプリ」またはユニットテストを実行すると、これらのエラーが発生します。
注釈プリプロセッサを有効にする必要があります。 こちらのドキュメントを参照 。
さらに、lombokプラグインをまだインストールしていない場合はインストールする必要があります
私の場合、ツールボックス経由でIntelliJを更新した後に問題が発生しました。
「注釈処理を有効にする」フラグがオフになったため(以前のIntelliJバージョンから設定をインポートしたにもかかわらず)、オンにしました。これは、再起動、クリーン、ビルド後に問題を解決しませんでした。
ただし、lombokプラグインを樹脂化することは役に立ちました!
編集:それはIntelliJ 2018.1とlombokプラグインの互換性に問題があるようです。IntelliJユーザーにはプラグイン0.17へのアップグレードが必要です。
Lombokプラグインの変更ログの抜粋:
Lombokサポートプラグインをv0.17に更新:-修正(#465):IntelliJ 2018.1とのプラグインの互換性を修正
ビルドフォルダーで確認できます。
注釈プロセッサを有効にし、lombokプラグインをインストールした後、lombokで生成されたメソッドで「シンボルエラーが見つからない」場合は、gradleの設定を確認してください。
設定->ビルド、実行、展開-> Gradle、
ローカルgradleディストリビューションを使用している場合は、デフォルトgradleラッパーを使用に変更します。
プロジェクトのgradleラッパーが4.10.2であるが、ローカルgradleのバージョンが5.1.1であるときにこのエラーが発生し、デフォルトのgradleラッパーを使用するように変更した後に解決します。
ロンボクインポートをクリックして、Alt + Enterを押すと、短いリストが表示され、Maven依存関係の追加を選択します。画面の右下隅に、Mavenを有効にするアイコンが表示されます。私にとってはうまくいきました。
他の回答に記載されている他のソリューションとともに、pom.xmlに以下の依存関係を追加します。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
Lombokの場合、IntelliJを使用すると、変数の使用法を検索できます。変数の使用法には、ゲッターとセッターも含まれます。変数名とoption/alt + f7
をクリックするだけです。
これは、Intellij 2016およびLombokプラグイン0.13.16で機能します。古いバージョンについてはわかりません。