본 글은 build.gradle의 Querydsl 설정에 대해 다룸
본 글의 주제에 맞는 부분만...
- Java 17 공식 지원
javax
패키지 지원 종료 및jakarta
패키지 지원 시작- Gradle 7.5 이상 지원
P6SpyFormatConfig.java
설정으로 SQL 포맷팅...
configurations {
...
querydsl.extendsFrom compileClasspath
...
}
...
dependencies {
...
implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
implementation "com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0"
...
}
...
...
configurations {
...
querydsl.extendsFrom compileClasspath
...
}
...
dependencies {
...
implementation("com.querydsl:querydsl-mongodb:5.0.0") {
exclude group: "org.mongodb", module: "mongo-java-driver"
}
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
...
}
...
본 예제 프로젝트에서는 Gradle Querydsl 플러그인인 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
를 사용하지 않는다.
Querydsl의 Qclass 빌드는 compileQuerydsl
태스크 대신 Gradle dependencies에 정의된 2 개의 annotationProcessor로 진행한다.
이 과정은 프로젝트 빌드(Gradle build 태스크 아님)가 진행될 때 같이 진행되며 Qclass는 /bin/generated-sources/annotations/{프로젝트 패키지}/{Entity 클래스 패키지}
위치에 생성된다.
만약 예전의 방식대로 Querydsl 플러그인을 사용하고자 하는 경우에는 아래 2 개의 패키지를 제거해야한다.
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
제거하지 않으면 Qclass 중복 생성 오류가 발생하여 빌드가 정상적으로 진행되지 않는다.
모든 소스 코드는 다음 링크에서 확인 가능하다.