gradle 构建失败 - 可能是 lombok 问题

gradle build failing - possible lombok issue

我已经为 STS 安装了 lombok 1.18.4。

但是,如果我尝试使用 ./gradlew clean build 而不是通过 STS 在终端中构建我的 jar,我会收到此错误:

Task :compileJava FAILED
Image.java:12: error: constructor Image() is already defined in class Image
@NoArgsConstructor
^
1 error

我发现 页面表明这是旧版本 lombok 的问题。正如我似乎已经安装并通过 IDE 工作一样,我必须做些什么才能在终端中构建它吗?

这是我的 Image class 代码:

package com.greglturnquist.learningspringboot.learningspringboot;

import lombok.Data;
import lombok.NoArgsConstructor;

//tag::code[]
@Data
@NoArgsConstructor
public class Image {

    private int id;
    private String name;

    public Image(int id, String name) {
        this.id = id;
        this.name = name;
    }

}
//end::code[]

试试 AccessLevel 我刚刚在 github here

中解决这个问题
@NoArgsConstructor(access=AccessLevel.PUBLIC)

Github 资源 来自引用 link

Yes, this is a bug. Sorry. Will see how soon we can make a new release.

1.16.22 constructor has private access #1704

或更新为

Update Lombok dependency version to 1.18.2 #14127

根据您对 Gradle 版本的评论,为您的项目查找 build.gradle 文件。

在其中找到依赖项部分,并更新与 lombok 相关的行以匹配您的 STS 版本

您应该会看到与此类似的一行,但版本为 1.16.22。

dependencies {
    compileOnly('org.projectlombok:lombok:1.18.4')
}

添加以下作为依赖项

compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'

和存储库

repositories {
    mavenCentral()
}

试试这个,对我有用

compile 'org.projectlombok:lombok:1.18.12'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'