簡體   English   中英

從 java 10 升級到 java 11,從 gradle 4.10 升級到 gradle。 5.2:“變量未在默認構造函數中初始化”

[英]Upgrading from java 10 to java 11 and gradle 4.10 to gradle. 5.2: "Variable not initialized in the default constructor"

我有一個簡單的對象:

@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 和 Gradle 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 問題

更改您的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM