Daily Develop

Intellij에서 QClass 깨끗히 청소하기

에디개발자 2022. 1. 11. 07:00
반응형

Querydsl, MapStruct를 사용하면서 generated/ 경로 하단에 생기는 class 파일 때문에 삽질한 기억이 있었습니다.

이번 글에서는 class 파일 찌꺼기 파일이 왜 남는지와 깨끗히 청소하는 방법에 대해서 작성해보겠습니다. 

 

💥 이슈사항

  • MapStruct와 QueryDSL을 사용하는 프로젝트에서 열심히 작업을 마치고 Git Branch를 변경하자 에러 발생!
  • Branch 변경 이전의 파일을 찾고 있는 에러 발생!!

 

💦 이슈 발생배경

develop에서 각 feature를 생성 후 작업을 진행하고 있었습니다.

변경 전 ( feature/TEST-1 )

  • BeforeMapper → MapStruct → BeforeMapperImpl 으로 사용중
  • BeforeMapper → AfterMapper로 변경 → MapStruct → AfterMapperImpl 생성
  • 정상 작동 확인 후 Git Branch Push & Merge 하여 해당 Branch 삭제

변경 후 ( feature/TEST-2 )

  • 실행하면 BeforeMapper Class가 없다고 에러발생!

 

💨 이슈 원인

generated/ 패키지 경호 하단에 생성된 BeforeMapperImpl는 삭제되지 않고 branch 변경을 함께하여 implement 중인 class를 찾아 에러 발생!

 

Tip!

Gradle인 경우 build 패키지 하위에 생성됨 generated/ 경로는 Gradle Build and run using 설정에 따라 상위 경로가 달라집니다.

intelliJ IDEA 인 경우 main 패키지 하위에 생성됨

 

Gradle인 경우 build 패키지 하위에 생성됨

 

🙋 해결방법

generated 를 삭제 후 재실행하면 정상 작동합니다.

 

🤔  Gradle Clean하면 되지 않나?

본인의 Gradle Build and run using 설정은 Intelli IDEA 였음.

→ generated/ 경로는 main 패키지 하위로 바라보고 있었음

 

publish 작업을 위해 ./gradlew ... 명령어 실행화근

 

gradlew를 이용해서 build 명령어를 실행할 경우 generated/ 경로는 build패키지 하위로 바라보게 되고 clean을 해도 build 패키지 하위의 파일만 삭제하여 main 패키지 하위의 class 파일은 그대로 남아있음.

 

즉! main, build 두 패키지 하위 모두 generated/ 가 생성되어 오랜 삽질을 함...

 

저처럼 삽질하지 마세요...

반응형