简体   繁体   中英

Gradle cannot build lombok annotated class

I had changed my project from maven to gradle. but I had error with this command

./gradlew build --scan

for project that has lombok in it.

I've tried all method from online an it is useless. The build.gradle file is in kotlin language

构建错误输出

Here is the build.gradle.kts

/*
 * This file was generated by the Gradle 'init' task.
 */

plugins {
    java
    `maven-publish`
}

repositories {
    mavenLocal()
    maven {
        url = uri("https://repo.maven.apache.org/maven2/")
    }
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.3.9.RELEASE")
    implementation("org.springframework.boot:spring-boot-starter-validation:2.3.9.RELEASE")
    implementation("org.springframework.boot:spring-boot-starter-actuator:2.3.9.RELEASE")
    implementation("org.springframework.boot:spring-boot-starter-web:2.3.9.RELEASE")
    implementation("org.springframework.cloud:spring-cloud-starter-config:2.2.0.RELEASE")
    implementation("org.springframework.cloud:spring-cloud-starter-sleuth:2.2.0.RELEASE")
    implementation("org.springframework.cloud:spring-cloud-sleuth-zipkin:2.2.0.RELEASE")
    implementation("org.springframework.cloud:spring-cloud-starter-openfeign:2.2.0.RELEASE")
    implementation("org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:2.2.0.RELEASE")
    implementation("io.springfox:springfox-swagger2:2.9.2")
    implementation("io.springfox:springfox-swagger-ui:2.9.2")
    implementation("org.projectlombok:lombok:1.18.18")
    runtimeOnly("mysql:mysql-connector-java:8.0.23")
    testImplementation("org.springframework.boot:spring-boot-starter-test:2.3.9.RELEASE")
}

group = "com.bank"
version = "0.0.1-SNAPSHOT"
description = "transaction"
java.sourceCompatibility = JavaVersion.VERSION_1_8

publishing {
    publications.create<MavenPublication>("maven") {
        from(components["java"])
    }
}

tasks.withType<JavaCompile>() {
    options.encoding = "UTF-8"
}

It seems to me. that you have to apply a plugin to your build script, as it's said in the lombok docs

Something like this:

plugins {
  ...
  id "io.freefair.lombok" version "6.4.2"
}

Or you have to provide annotation processor dependency, but I think that the plugin suits better.

So I've used the latest version instead of lombok 1.18.18

    compileOnly("org.projectlombok:lombok:1.18.22")
    annotationProcessor("org.projectlombok:lombok:1.18.22")
    testCompileOnly("org.projectlombok:lombok:1.18.22")
    testAnnotationProcessor("org.projectlombok:lombok:1.18.22")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM