Gradle 无法构建带注释的 lombok class

Gradle cannot build lombok annotated class

我已经将我的项目从 maven 更改为 gradle。但是这个命令我有错误

./gradlew build --scan

对于其中包含 lombok 的项目。

网上的方法都试过了,都没用。 build.gradle 文件使用 kotlin 语言

这里是 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"
}

在我看来。正如 lombok docs

中所述,您必须将插件应用于构建脚本

像这样:

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

或者你必须提供注释处理器依赖,但我认为插件更适合。

所以我使用了最新版本而不是 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")