QueryDsl 환경설정

2021. 11. 17. 16:31 Java 관련/JPA

pom.xml에 3.6.3 버전의 Querydsl JPA Support모듈을 추가한다.

<dependency>
  <groupId>com.mysema.querydsl</groupId>
  <artifactId>querydsl-jpa</artifactId>
  <version>3.6.3</version>
</dependency>       
<dependency>
  <groupId>com.mysema.querydsl</groupId>
  <artifactId>querydsl-apt</artifactId>
  <version>3.6.3</version>
  <scope>provided</scope>
</dependency>

이어서 plugin을 추가하는데 빌드시 queryDsl 기반 코드가 생성돼야 하므로 출력 디렉터리 정보를 넣어 두어야한다.

<plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources/java</outputDirectory>
                            <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

플러그인을 추가할때 <executions> 부분에서 에러가 나타날 수 있는데 문제는 다음과 동일. 해결 방법을 참고해 해결해야 한다. 스택오버플로우를 확인해 보는 것도 도움이 된다. 오류 메시지는 다음과 같다.

You need to run build with JDK or have tools.jar on the classpath.If this occures during eclipse build make sure you run eclipse under JDK as well

해결 방법은 sts.ini 에 vmargs위쪽에 다음과 같은 내용을 추가한다.

-vm
%JAVA_HOME/bin/javaw.exe
-vmargs

또는 절대경로로 다음과 같이 추가할 수 도 있다.

-vm
C:\Program Files\Java\jdk1.8.0_101/bin/javaw.exe
-vmargs

위와 같이 설정하고 나서 STS를 재시작하면 설정이 변경돼 자바 컴파일러 버전이 1.6과 같은 하위 버전으로 맞춰져 있어 프로젝트 설정이 꼬일 수 있다. 만약 java compiler가 1.6으로 바뀌어 있다면 코드가 제대로 호출돼지 않을 수 있다. 먼저 자바 컴파일러를 1.8로 맞추고 그 다음에 이어서 다음과 같은 메시지가 나타날 수 있다. (warning창)

java compiler level does not match the version of the installed java project facet

그럼 프로젝트 설정창에서 PROJECT FACETS에서 JAVA 버전을 1.8로 맞추면 된다.



출처: https://happygrammer.tistory.com/157?category=891896 [happygrammer]