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'
我已经为 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
我发现
这是我的 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'