티스토리 뷰

결론

  • Lombok의 Builder를 static import할 때는 *를 이용해야지, 클래스명으로 직접하면 에러가 난다.

상황

  • maven으로 빌드시 Builder클래스를 못찾는 에러 발생
  • 같은 레벨의 다른 프로젝트는 문제 없고, 유사한 pom.xml을 사용 중.
  • main소스는 문제 없음. test소스에서만 문제 발생.

예상원인

  • maven-compiler의 설정 이상
    • 문제가 생긴 프로젝트만 해당 플러그인에 별도의 설정이 있기 때문에
  • 여러 테스트의 충돌
    • UT, IT-a, IT-b로 나뉘어진 테스트 코드가 합쳐질 때 중복이 된다던가 하는 에러의 가능성

해결하기 위해 시도한 방법

  • maven-compiler-plugin 설정을 통한 해결 : 실패
    • 특별한 설정과 그 설정을 쓰는 파일을 지우고 시도
    • annotaion processor설정을 추가
  • maven과 lombok버전업: 실패
    • lombok의 버전을 설정해가며 시도
  • UT만 남기고 다른 테스트 삭제: 실패
  • UT만 남긴 상태에서 파일을 조금씩 지워가며 에러가 발생하지 않을 때까지 반복 : 성공

원인과 대응

  • 파일을 조금씩 지워가며 빌드하다가 빌드가 성공되는 것을 발견.
  • 해당 파일은 내가 만든거라 동작확인이 끝난 파일.
  • 히스토리를 보니 누군가가 테스트 케이스를 추가하면서 기존의 import를 *에서 해당 빌더이름으로 바꾼 것을 확인.
  • 이제서야 lombok의 문서를 살펴보니 static import를 하면 *로 해야지 빌더를 직접 import를 하면 안된다고 함.

https://projectlombok.org/features/Builder

  • 해당 이슈를 보낸 사람에게 해당 내용 알리고 종결.

참고