I'm trying to use the io.freefair.lombok plugin but I'm getting an error with Gradle 4.10.2. How do I set it?
plugins {
id 'org.springframework.boot' version '2.2.5.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id "io.freefair.lombok" version "4.0.0" // error on this line
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
mavenLocal()
}
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR3'
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
runtimeClasspath 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Here's the error:
Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.10.2-bin.zip'.
Build file 'C:\Users\user\eclipse-workspace\car-proj\build.gradle' line: 4
An exception occurred applying plugin request [id: 'io.freefair.lombok', version: '5.0.0-rc4']
Failed to apply plugin [class 'io.freefair.gradle.plugins.lombok.LombokBasePlugin']
Could not generate a proxy class for class io.freefair.gradle.plugins.lombok.LombokExtension.
org/gradle/api/provider/MapProperty
org.gradle.api.provider.MapProperty
adding more text so post is not mostly code
The version of the Lombok plugin you applied may not be compatible to your Gradle version. The project website states that the latest version compatible to Gradle 4.10.2
is the 2.x
branch, specifically 2.9.5
. So, either you use that or upgrade to a more recent Gradle version.
Plugin Version | Gradle Version | Java Version |
---|---|---|
8.11.x | 8.11 | 8+ |
8.10.x | 8.10 | 8+ |
8.7.x | 8.7 | 8+ |
8.6.x | 8.6 | 8+ |
8.4.x | 8.4 | 8+ |
8.3.x | 8.3 | 8+ |
8.2.x | 8.2 | 8+ |
8.1.x | 8.1 | 8+ |
8.0.x | 8.0 | 8+ |
6.6.x | 7.6 | 8 - 18 |
6.5.x | 7.5 | 8 - 18 |
6.4.x | 7.4 | 8 - 17 |
6.3.x | 7.3 | 8 - 17 |
6.2.x | 7.2 | 8 - 16 |
6.1.x | 7.1 | 8 - 16 |
6.0.x | 7.0 | 8 - 16 |
5.3.x | 6.7 | 8 - 15 |
5.1.x | 6.4+ | 8 - 14 |
5.0.x | 6.3 | 8 - 13 |
4.x | 5.6+ | 8 - 12 |
3.8.x | 5.5.x | 8 - 12 |
3.3.x - 3.7.x | 5.4+ | 8 - 12 |
3.2.x | 5.3+ | 8 - 11 |
3.x | 5.1+ | 8 - 11 |
2.x | 4.x | 8 - 11 |
You may also want to upgrade Gradle to stay compatible to the Spring Boot Gradle Plugin.
Spring Boot’s Gradle plugin requires Gradle 5.x or 6.x (4.10 is also supported but this support is deprecated and will be removed in a future release).
(From: Spring Boot Gradle Plugin Reference Guide)
Update
After reviewing your build.gradle
more closely, you already have Lombok processing defined in your dependencies
block:
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
You may use either this or the Lombok plugin. Both applied at the same time is not necessary.