简体   繁体   English

Gradle 无法构建 lombok 注释 class

[英]Gradle cannot build lombok annotated class

I had changed my project from maven to gradle. but I had error with this command我已将我的项目从 maven 更改为 gradle。但我在使用此命令时出错

./gradlew build --scan

for project that has lombok in it.对于其中包含 lombok 的项目。

I've tried all method from online an it is useless.网上的方法都试过了,都没用。 The build.gradle file is in kotlin language build.gradle 文件是 kotlin 语言

构建错误输出

Here is the build.gradle.kts这是 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正如lombok 文档中所述,您必须将插件应用于构建脚本

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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