【问题标题】:gradle build failing - possible lombok issuegradle build 失败 - 可能的龙目岛问题
【发布时间】:2018-11-20 20:33:30
【问题描述】:

我已经为 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

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

这是我的Image 课程代码:

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[]

【问题讨论】:

  • 你能更新Image类代码吗?
  • 可能你已经定义了一个默认的无参数图像构造函数,所以如果你使用@NoArgsConstructor,你应该删除它
  • 道歉。代码已更新。
  • 您的 Gradle 依赖项中定义了哪个版本的 Lombok?据我所知,这是用于命令行构建的注释处理器版本。
  • 实际上,它似乎是 1.16.22,我认为这是问题版本。如何在 Gradle 中更新依赖版本?

标签: java spring spring-boot lombok


【解决方案1】:

添加以下作为依赖项

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

和存储库

repositories {
    mavenCentral()
}

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 谢谢。我不得不编辑您提供的代码示例,但您的建议很有效。
    • 请随意提出修改答案的建议,以便更正确。
    【解决方案3】:

    尝试使用AccessLevel 我只是在 github here 中解决这个问题

    @NoArgsConstructor(access=AccessLevel.PUBLIC)
    

    Github 资源来自参考链接

    是的,这是一个错误。对不起。看看我们多久可以发布新版本。

    1.16.22 构造函数有私有访问 #1704

    或更新到

    将 Lombok 依赖版本更新到 1.18.2 #14127

    【讨论】:

      【解决方案4】:

      试试这个,它对我有用

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-02
        • 2021-03-27
        • 1970-01-01
        相关资源
        最近更新 更多