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/ 가 생성되어 오랜 삽질을 함...
저처럼 삽질하지 마세요...
반응형