QueryDsl 설정 정말 까다롭다..!
고생 깨나 한 김에 정리.
build.gradle
dependencies {
// ...
// Querydsl
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
clean {
delete file('src/main/generated')
}
dependency를 추가하고 clean 시 QClass를 삭제해주는 코드를 작성한다.
dependency{
// Querydsl
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
def queryDslDir = 'src/main/generated'
clean {
delete file(queryDslDir)
}
tasks.withType(JavaCompile){
options.generatedSourceOutputDirectory = file(queryDslDir)
}
queryDslDir 변수를 사용해 QClass 디렉토리를 바꿔줄 수 있다.
이때, (build.gradle 상단의) plugins에 queryDsl을 추가하는 코드가 웹 상에 많이 돌아다니는데, 그러면 어째서인지 gradlew를 사용했을 때 빌드가 안된다...
(왜 그런건지 너무 궁금하다)
QClass 디렉토리 gitignore 잊지말기!