Laguh
Laguh

Reputation: 673

Lombok @Builder not recognised by IntelliJ

I updated IntelliJ IDEA to version 2018.2.7, and Lombok's @Builder annotation is not recognised anymore. The project already had Lombok annotations, which worked fine with previous (2017...) version of IntelliJ. Only @Builder is failing. I am using Lombok version 1.14.4. And Java 11.

The problem is similar to this one: Lombok not working with Intellij But the solution provided there is not applicable for my project as my project does not have a submodule and the only pom.xml is referring to the correct project.

The project has Lombok plugin and Annotation processing enabled.

Lombok plugin config Annotation processing config

Project's POM where version is configured:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <lombok.version>1.14.4</lombok.version>
        <hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
        <assertj-core.version>3.8.0</assertj-core.version>
</properties>

The error message at code level is: Cannot resolve symbol @Builder. If possible I would like to keep Lombok's and IntelliJ version.

Error message

Upvotes: 12

Views: 35712

Answers (6)

Arjun
Arjun

Reputation: 41

Add Latest version of Lombok Dependency in pom.xml,

Go to IntelliJ Settings -> Plugins -> lombok -> Install/Update

Upvotes: 2

Jason D
Jason D

Reputation: 8673

Upgrading to Lombok 1.18 helped fix the issue, but caused problems that showed Contructor Not Found on some generated classes.

I had to create a blank lombok.config file in the root of my project that had

lombok.anyConstructor.addConstructorProperties=true

as the only line, then everything built like before.

Upvotes: 0

tufac2
tufac2

Reputation: 778

In my case this is a problem with the version. Honestly. I downgrade to Version 1 and re-sync the Maven repositories:

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

Upvotes: 2

T04435
T04435

Reputation: 14022

I did no specify the version on my pom.xml and it got the latest version by default(1.18.8 I see this under External Libraries)

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

The Class.builder() was not working for me but after installing the plugin(https://github.com/mplushnikov/lombok-intellij-plugin) it worked.

no extra configuration required. :)

Upvotes: 6

Dred
Dred

Reputation: 1120

Update your lombok version.

Because @Builder gained @Singular support and was promoted to the main lombok package since lombok v1.16.0.

Source

I have

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

and haven't that problem

Upvotes: 8

duffymo
duffymo

Reputation: 309008

This suggests to me that your Maven didn't pull the dependency down from your central repository.

Here's a list of things you can try:

  1. Validate that the desired Lombok dependency appears in the central repository.
  2. Validate that the desired Lombok dependency appears in your local .m2.
  3. Re-index your Maven project; make sure auto import is turned on.
  4. Check External Libraries in the left Project tab to make sure that Lombok appears.
  5. Close the project and re-open if there's any red in the Maven tab on the right.

If it's available, IntelliJ will find it. If IntelliJ can't find it, it's likely that it's not available.

Upvotes: 0

Related Questions