[Spring Boot] error: variable name not initialized in the default constructor

MEUN·2021년 10월 31일
0

🔒 상황

Lombok 라이브러리를 사용하기 위하여 플러그인 설치 후 개발을 진행하다 아래와 같이 오류가 발생하였다.

error: variable {멤버 변수명} not initialized in the default constructor


🔑 해결 방법

1. Gradle 버전 확인

  • [gradle\wrapper\gradle-wrapper.properties] 파일 내 distributionUrl 설정값을 통하여 버전을 확인한다.


2. 프로젝트 내 build.gradle 파일을 확인하여 Lombok의 의존성이 올바르게 추가되었는지 확인

  • Lombok의 경우 Gradle의 버전별로 의존성을 추가하는 방법이 다르다.
  • 아래 공식 페이지대로 Gradle을 설정한 뒤 프로젝트 빌드를 진행하기만 하여도 테스트 코드가 정상적으로 작동함을 확인하였다.
    (Lombok 공식 페이지)
dependencies {
	compileOnly 'org.projectlombok:lombok:1.18.22'
	annotationProcessor 'org.projectlombok:lombok:1.18.22'
	
	testCompileOnly 'org.projectlombok:lombok:1.18.22'
	testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
}
  • 하지만, Gradle 버전 6부터 compile, testCompile 함수가 Soft Deprecated 되는 등의 변화가 있었음을 깨달았다. 그래서 가급적 최신 버전의 함수를 사용해보고자 아래와 같이 작성하여 정상 확인하였다. (현재 해당 프로젝트의 Gradle 버전은 7.1이다.)
dependencies {
    implementation      'org.springframework.boot:spring-boot-starter-web'
    testImplementation  'org.springframework.boot:spring-boot-starter-test'
    implementation      'org.projectlombok:lombok'
    testImplementation  'org.projectlombok:lombok'

    annotationProcessor     'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
}

📕 느낀 점

아직 Gradle을 접한지는 얼마 되지 않았지만 버전별 특성 등을 이해하기 위해 보다 더 공부해야겠다고 생각하였다.

0개의 댓글