'스프링 부트와 AWS로 혼자 구현하는 웹 서비스' Chapter02 스프링부트에서 테스트 코드를 작성하자 파트를 실습하던 중
lombok error: variable name not initialized in the default constructor private final String name;
에러가 발생하며 테스트 코드가 작동하지 않았다.
https://github.com/jojoldu/freelec-springboot2-webservice/issues/78
p.72 lombok constructor 생성 오류 · Issue #78 · jojoldu/freelec-springboot2-webservice
생성자가 안만들어지고 lombok error: variable name not initialized in the default constructor private final String name; 이런 오류가 나서 확인해보니 gradle 5부터는 어노테이션을 구별해서 추가해줘야 한다고 하네요.
github.com
위 답변을 참고하여 변경해보았으나 이후 실습에서 계속 Gradle 버전으로 인한 오류가 발생할 것 같아 결국 Gradle 4로 버전을 변경하였다.
Gradle 4 버전 변경은 Terminal(alt + f12)을 열고 아래 코드를 입력하면 끝이다.
./gradlew wrapper --gradle-version 4.10.2
그러나 이후 jdk16 버전 충돌로 인해 아래와 같은 오류가 추가 발생했다
Cause: class lombok.javac.apt.LombokProcessor (in unnamed module @0x31d8f0a9) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x31d8f0a9
이 문제는 아래 링크를 참고하여 해결하였다.
https://projectlombok.org/setup/gradle
Gradle
projectlombok.org
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'
위 코드들을 build.gradle 파일 dependencies에 기존 lombok 코드를 삭제하고 넣으면 된다
버전 변경 + jdk 버전 오류 해결을 통한 최종적인 build.gradle 파일의 dependencies의 코드는 아래와 같다
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
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'
}
'Framework > Spring' 카테고리의 다른 글
[Spring Boot] Gradle 빌드 에러 해결하기 (0) | 2022.03.14 |
---|