배경

  • Kotlin과 Java를 혼용해서 사용하고, Java에서 롬복을 사용하고 있으면 문제가 발생할 수 있다.
  • @Getter를 사용했음에도, Error: Cannot access ’name’: it is ‘private’ in “Person” 같이 프로퍼티에 접근할 수 없는 것을 확인할 수 있다.
  • 이는 Lombok이 코드를 생성하는 단계보다 Kotlin 컴파일러가 코드를 컴파일 하는 과정이 먼저 이루어지기 때문에 발생하는 문제다.
    • 아래 사진에서 Lombok 코드 생성은 Annotation Processing 단계에서 처리된다.

해결 방법

1. 빌드 전처리 과정에서 Delombok 실행

2. Lombok 제거

3. Lombok이 있는 코드를 Kotlin으로 전환

4. Kotlin Lombok 컴파일러 플러그인

참고 자료