인텔리제이에서 JPA의 QueryDSL을 적용하고 애플리케이션을 실행하는 과정에서
정말 짜증 나는 현상이 반복되어 며칠을 삽질을 하다가 결국 방법을 찾아 공유해 보려고 한다.
여러분들이 다음과 같은 문제에 직면하고 있다면 도움이 될 수 있겠다.
문제1
- Task 정보가 뜨는 현상
- 이것이 뜨기 시작하면서 한글이 깨지는 현상
문제2
- 컴파일 에러는 안나는데 런타임 시 QueryDSL의 Q클래스를 찾을 수 없는 현상
하나씩 해결해 보자
문제 1 의 해결법
자세히 보면 Run 오른쪽 실행 이미지가 코끼리(Gradle)로 되어있다.
이건 Gradle 환경으로 프로그램을 실행한다는 것인데, 그렇기 때문에 Task의 정보도 표시되는 것이다.
이것을 해결하려면 인텔리제이환경으로 바꿔야 한다.
File - Settings - Build, Execution, Deployment - Build Tools - Gradle 로 들어가서
다음과 같이 Build and run using과 Run tests using을 IntelliJ IDEA로 바꿔준다.
적용을 한 후 실행하면, 다음과 같이 인텔리제이로 실행이 되면서 Task 표시도 안되고 한글이 깨지는 현상도 사라진다.
문제 2 의 해결법
나는 QueryDSL의 Q클래스가 생성되는 위치를 다음과 같이 별도의 패키지를 만들어서 지정해 두었다.
src/main/generated
그 후 어플리케이션을 실행 하니까 다음과 같이 Q클래스를 찾을 수 없다는 오류가 발생했다.
원인은 프로젝트 모듈 셋팅에서 generated로 바꾼 경로를 추가 해주지 않았기 때문이다.
File - Project Structure - Project Settings - Modules를 들어가보면 다음과 같은 창이 나온다.
main에서 우측 Add Content Root를 눌러서 다음의 경로를 포함시켜 준다.
그 후 OK를 누르고 실행을 해보면 정상적으로 Q클래스를 찾아서 실행이 된다.
참고 ) QueryDSL로 작성한 Q클래스가 컴파일 에러가 나는 경우
이 경우는 아직 Q클래스를 생성하지 않아서 생기는 에러이다.
인텔리제이 우측 상단에 Gradle탭을 열어준다.
compileQuerydsl을 눌러주게 되면 Q클래스가 생성되어 에러가 해결이 된다.
회고
이것 때문에 한동안 엄청난 스트레스를 받으며 에러의 원인을 찾아다녔는데
학원 동기였던 김성렬 형의 도움으로 해결할 수 있었다.
이번 포스팅으로 해당 에러로 고통받고 있는 여러분들을 구해줄 구세주가 되었기를 바란다.
'곰돌이 푸도 울고 갈 꿀팁' 카테고리의 다른 글
| 인텔리제이에 Google Formatter 를 적용해보자! (0) | 2022.12.21 |
|---|---|
| 테스트 작성 시 주석 자동완성 셋팅하기 (0) | 2021.06.07 |
| 인텔리제이 패키지 경로를 한 번에 보는 방법 (0) | 2020.06.22 |
| 인텔리제이 Java Stream 코드 라인 맞추기 (0) | 2020.02.03 |
| [티스토리 블로그 업로드] 목차를 이용해서 해당 부분으로 이동하기 (0) | 2018.12.11 |
댓글