본문 바로가기
Error & Exception

[Gradle] Lombok: variable not initialized in the default constructor

by unknownomad 2022. 3. 25.

Lombok (롬복)

  • Java 환경에서 어플리케이션 개발 시 보일러플레이트 코드를 제거하기 위해 사용
  • Lombok 어노테이션 사용 시, 컴파일될 때 해당 어노테이션의 기능들이 자동으로 생성됨

 

예시

  • getter, setter, constructor 자동 생성됨
@Getter
@Setter
@NoArgsConstructor
public class User {

    private String name;
    private int age;
}

@NoArgsConstructor

  • User 클래스에 대한 디폴트 생성자 자동 생성
@NoArgsConstructor
public class User {

    private String name;
    private int age;
    
    /*
    public User() {}
    */
}

 

@AllArgsConstructor

  • User 클래스가 가진 모든 속성들 포함하는 생성자 자동 생성
@AllArgsConstructor
public class User {

    private String name;
    private int age;
    
    /*
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    */
}

 

@RequiredArgsConstructor

  • @NotNull 어노테이션이나 final 키워드 사용하는 속성들로만 이루어진 생성자 자동 생성
@RequiredArgsConstructor
public class User {

    private final String name;
    private int age;
    
    /*
    public User(String name) {
        this.name = name;
    }
    */
}

에러 메시지

Lombok: variable not initialized in the default constructor

= Lombok으로 생성자를 만들었으나 정상 작동하지 않는다는 의미


해결 방법

Gradle 버전 및 Lombok 의존성 추가 방법 확인

Gradle을 통해 Lombok 의존성 라이브러리를 추가했으나 동작하지 않는다면, 현 Gradle 버전이 5.x 이상인지 확인해야 함

➡ Gradle 5.x 이상부터 Lombok 의존성 추가 방법 변경됨

 

  • Gradle 5.x 미만
dependencies {
    implementation 'org.projectlombok:lombok'
}

 

  • Gradle 5.x 이상
dependencies {
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
}

 


출처 : https://deeplify.dev/back-end/spring/lombok-required-args-constructor-initialize-error

댓글