// queryDSL 선언부 --------------------------------------------------------------
// 버전이 끝에 붙으면 생략하여 버전관리를 spring에게 맡길 수 있지만, 중간에 나오는경우 불가능하다. 그래서 아래줄과 같이 추가 코딩을 해줌
implementation "com.querydsl:querydsl-jpa:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
implementation "com.querydsl:querydsl-core"
implementation "com.querydsl:querydsl-collections"
// querydsl JPAAnnotationProcessor 사용 지정
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
// java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
// java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// -------------------------------------------------------------- queryDSL 선언부
// Querydsl 설정부 : build 디렉토리 안에 생길 Q 파일을 src/main에 generated를 생성하고 그 안에 만들도록 설정
def generated = 'src/main/generated'
// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile).configureEach {
options.getGeneratedSourceOutputDirectory().set(file(generated))
}
// java source set 에 querydsl QClass 위치 추가
sourceSets {
main.java.srcDirs += [ generated ]
}
// gradle clean 시에 QClass 디렉토리 삭제
clean {
delete file(generated)
}