从 java 10 升级到 java 11,从 gradle 4.10 升级到 gradle。5.2: "Variable not initialized in the default constru



我有一个简单的对象:

@Value
@Builder
public class User implements Serializable {
    private final String userId;
    private final String email;
    private final String name;
}

这里没有魔术,除了我在此处使用Lombok 1.18.2进行@Value@Builder注释的事实。与Java 10和Grad 4.10一起工作正常。现在,我升级到Java 11和Gradle 5.2,突然我得到了:

> Task :application:compileJava
/src/application/src/main/java/com/rbb/tutor/user/model/User.java:12: error: variable userId not initialized in the default constructor
    private final String userId;
                         ^
/src/application/src/main/java/com/rbb/tutor/user/model/User.java:13: error: variable email not initialized in the default constructor
    private final String email;
                         ^
/src/application/src/main/java/com/rbb/tutor/user/model/User.java:14: error: variable name not initialized in the default constructor
    private final String name;
                         ^

我真的不知道在这里做什么。首先,我认为Lombok的问题是一个问题,但我升级到支持Java 11的1.18.6。现在我没有新的想法了。

gradle 5发行版具有新的annotationProcessor()配置(LOMBOK ISSUAKE)

更改您的build.gradle如下:

annotationProcessor("org.projectlombok:lombok:1.18.6")
compileOnly("org.projectlombok:lombok:1.18.6")

或使用推荐插件-https://plugins.gradle.org/plugin/io.freefair.lombok

plugins {
  id "io.freefair.lombok" version "3.1.0"
}

在Gradle 5中,您需要分别列出注释处理器。也许是问题?

可以在此处找到一个示例Gradle构建:

https://projectlombok.org/setup/gradle

相关内容

  • 没有找到相关文章

最新更新