반응형
Annotation 을 사용하기 위해 build.gradle 에 dependency 를 추가하는 과정에서
여러 이슈들이 있었다.
오늘은 그 이슈들을 해결하는 과정을 리마인더하기 위해 적어보려 한다.
먼저 lombok 을 사용하기 위해 build.gradle 에 다음 문구를 추가했다.
implementation('org.projectlombok:lombok')
이후 아래 DTO 코드에 Annotation 을 추가하고 Unit test 를 진행했다.
@Getter
@RequiredArgsConstructor
public class HelloResponseDto {
private final String name;
private final int amount;
}
테스트 코드를 실행했는데 아래 에러 발생..
https://deeplify.dev/back-end/spring/lombok-required-args-constructor-initialize-error
위 링크를 참조해보니 Gradle 버전이 올라가면서
Lombok 의존성을 추가하는 방법이 바뀌어서 발생한 문제였다.
dependency 를 바로 수정해주자.
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
이젠 되겠지 ~ 바로 실행.
또 에러.. 이번엔 아래와 같은 에러가 발생했다.
Cause: class lombok.javac.apt.LombokProcessor (in unnamed module @0x8a4313)
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 @0x8a4313
번역하자면 Lombok 프로세서가 클래스에 액세스할 수 없다는 뜻이다.
검색해보니 JDK 특정 버전의 경우 Lombok 이 호환이 되지 않아서 생긴 문제였다.
해결방법은 두 가지인데
- JDK 자바 버전을 수정한다.
- Lombok 버전을 수정한다.
나는 dependency 에 Lombok 버전을 수정하는 두 번째 방식을 통해서 해결했다.
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
}
해결 !
728x90
반응형