[Gradle] Gradle 버전에 따른 Lombok 설정 방법
in Development on Problem Solving, Gradle, Lombok, 설정
“Gradle 버전에 따른 Lombok 설정 방법”
#목차
문제
동욱 님의 책 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보며 테스트 하던 중 아래 사진과 같은 문제가 발생하였다.
variable '변수명' not initialized in the default constructor
라는 오류가 발생하였다.
문제 상황 재현 코드
테스트 코드
// file: "HelloResponseDTOTest.java"
public class HelloResponseDTOTest {
@Test
public void 롬복_기능_테스트() {
// given
String name = "test";
int amount = 1000;
// when
HelloResponseDTO dto = new HelloResponseDTO(name, amount);
// then
assertThat(dto.getName()).isEqualTo(name);
assertThat(dto.getAmount()).isEqualTo(amount);
}
}
- 코드에 이상은 없었다.
- 문제는
gradle
의 버전에 따라lombok
설정이 다른 것이었다.
문제의 build.gradle 설정
// file: "build.gradle"
dependencies {
// Gradle 5.x 미만
implementation 'org.projectlombok:lombok'
}
- 위 코드처럼 내가 설정을 해놓았다.
- 문제는 프로젝트의
Gradle
버전과lombok
버전이 맞지 않아 생기는 오류라는 것을 확인하였다. - 나의
gradle
버전을 확인하지 않고 설정 해버렸던 것이었다.
나의 gradle 버전 확인
./gradlew --version
- 나의
Gradle Version
은7.6.1
- 내가
build.gradle
설정에서 설정해 준 버전은Gradle 5.x 미만
의 설정이어서variable '변수명' not initialized in the default constructor
라는 오류가 발생했던 것이었다.
해결
해결 build.gradle 재설정
// file: "build.gradle"
dependencies {
// Gradle 5.x 이상
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
- 위
5.x
대의 설정 방법으로 설정해주니 해결 되었다.
결론
- 테스트 작업 시
variable '변수명' not initialized in the default constructor
라는 해당 오류 발생 시 해당 프로젝트의Gradle
버전 확인 Gradle
버전(5.x 미만
,5.x 이상
)에 따라lombok
설정 후 테스트 재진행