当前位置: 首页 > 知识库问答 >
问题:

由于lombok,Gradle构建失败

淳于飞文
2023-03-14

我使用Gradle 4.10.2(但使用最新版本让它工作会很好)。这是我的gradle文件:

plugins {
    id 'org.springframework.boot' version '2.2.5.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    jcenter()
}

ext {
    set('springCloudVersion', "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'
    runtime 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

当我执行bootJar时,它会失败并出现很多错误。这些错误都是由于没有找到lombok自动生成的getter、setter等。如何解决这些错误?我看过其他关于这个问题的帖子,他们都建议将lombok依赖项添加为annotationProcessor

使现代化

以下是我得到的几个错误:

C:\Users\user\eclipse-workspace\example\src\main\java\com\example\proj\service\CarService.java:60: error: cannot find symbol
            log.debug("calling for cars {} ", cars);
            ^
  symbol:   variable log
  location: class CarService
C:\Users\user\eclipse-workspace\example\src\main\java\com\example\proj\service\CarService.java:66: error: cannot find symbol
                CarDtoBuilder dtoBuilder = dtoBuilderByCar.getOrDefault(
                ^
  symbol:   class CarDtoBuilder
  location: class CarService

日志应该来自注释@Slf4j。并且CarDtoBuilder来自于在CarDto上注释的@Builder(BuilderMultiodName="hiddenBuild")。两者都是Lombok注释。

更新2

现在尝试Gradle 4.10.3。同样的结果。下面是gradle-v的输出:

------------------------------------------------------------
Gradle 4.10.3
------------------------------------------------------------

Build time:   2018-12-05 00:50:54 UTC
Revision:     e76905e3a1034e6f724566aeb985621347ff43bc

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          1.8.0_222 ( 25.222-b10)
OS:           Windows 10 10.0 amd64

更新3

我已经尝试使用Gradle 6相同的结果。我尝试使用Windows和Mac...相同的结果。我尝试使用JDK 11而不是JDK 8...相同的结果。

更新4

我正在使用@Builderlombok注释。我想知道这是否引起了问题。

共有2个答案

冯庆
2023-03-14

删除对涉及lombok生成的代码的静态导入的任何引用。就我而言,我有:

import static com.example.car.dto.CarDto.CarDtoBuilder;

CarDtoBuilder是通过CarDto类上的lombok@Builder生成的。一旦解决,其他与lobmok编译相关的问题,如未找到log符号(由@Slf4j创建)就会消失。

傅树
2023-03-14

我在你的build.gradle文件中没有看到你的lombok-plugin配置。

我必须在gradle 4.10的项目中设置lombok。这就是我所做的:

group 'io.metadata'
version '1.11-SNAPSHOT'

apply plugin: 'java'

project.ext.set("spring.boot.version", "2.2.6.RELEASE")
project.ext.set("spring.core.version", "5.2.5.RELEASE")

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath("io.freefair.gradle:lombok-plugin:5.0.0-rc4")
    }
}

subprojects {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    apply plugin: 'java'
    apply plugin: 'io.freefair.lombok'
}

检查应用插件的:'io.freefair.lombok'及其在Buildcript上定义的依赖项。

请注意,我使用的是多模块项目,但无论哪种方式,您都可以使用lombok插件并应用它。

它不是强制性使用lombok插件,但它工作得很好,而且很容易做到。您可以按照以下文档操作:https://plugins.gradle.org/plugin/io.freefair.lombok

 类似资料:
  • 我已经更新了firebase-auth依赖版本,但gradle构建总是失败。它在中运行良好 项目级别分级文件

  • 我有一个JHipster项目,我在build.gradle中添加了对Lombok的依赖: 我为IntelliJ安装了Lombok插件。我已经在IntelliJ中打开了注释处理,我可以在IntelliJ IDE中生成而不出错,但是当我尝试从命令行生成时,会出现生成错误。Gradle似乎没有处理注释,也找不到getter/setter和log声明。项目运行时也不会出现任何错误。 命令行: 错误: 错误

  • 回溯(最近一次通话最后一次): [3/132]ACTION//chrome/android:chrome_java_resources(//build/tools chain/android:android_clang_arm)忍者:构建停止:子命令失败。 编辑 历史是一排。xml 乌尔希斯拉。JAVA 唯一的方法不是显示错误的整个类 我之前得到的错误突然消失,现在突然构建停止。 错误: ../.

  • 我有一个Android应用程序,当我运行以下命令时,它的构建失败: 以下是我收到的错误:

  • 我使用的是Unity 2019.3.3f1个人版,当我尝试构建64位时,我遇到了212个错误。我认为这是最重要的一个,所以我只是粘贴这些: 命令InvokationFailure: Gradle构建失败。C:/程序文件/统一/集线器/编辑器/2019.3.3f1/编辑器/数据/播放引擎/Android玩家\OpenJDK\bin\java.exe-classpath"C:\程序文件\统一\集线器\

  • 我用的是Android studio。显示此错误的所有新项目: 生成文件'/Users/messan/AndroidStudioProjects/MyApplication/Build。格拉德尔线:3 在以下任何来源中均未找到插件[id:'com.android.application',版本:'7.1.1',apply:false]: > 例外是:org。格雷德尔。应用程序编程接口。插件。Unk