728x90
Jpa 와 QueryDsl 은 추가할 의존성도 많고 QueryDsl 같은경우 빌드뒤 생성된 Q파일을 사용하기에 따로 빼서 관리하는 것이 좋다.
Jpa 와 QueryDsl 관련 gradle 설정을 따로 외부로 빼고, 사용할 domain 모듈에서 파일을 불러와 사용해 보도록 하겠다.
Root 모듈에 jpa.gradle 파일을 만들자
apply plugin: "com.ewerk.gradle.plugins.querydsl"
apply plugin: "idea"
def querydslVersion = '5.0.0'
def queryDslDir = "src/main/generated" // Q파일 생성위치
querydsl {
library = "com.querydsl:querydsl-apt:${querydslVersion}" // 사용할 AnnotationProcessor 정의
jpa = true
querydslSourcesDir = queryDslDir
}
compileQuerydsl {
delete file(queryDslDir)
options.annotationProcessorPath = configurations.querydsl
}
configurations {
querydsl.extendsFrom compileClasspath
}
dependencies {
implementation ('org.springframework.boot:spring-boot-starter-data-jpa')
implementation group: 'com.querydsl', name: 'querydsl-jpa', version: querydslVersion
implementation group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion
implementation group: 'com.querydsl', name: 'querydsl-core', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion, classifier: 'jpa'
annotationProcessor("jakarta.persistence:jakarta.persistence-api")
annotationProcessor("jakarta.annotation:jakarta.annotation-api")
}
sourceSets {
main {
java {
srcDirs = ["src/main/java", queryDslDir]
}
}
}
compileJava.doFirst {
delete queryDslDir
}
idea {
module {
sourceDirs += file(queryDslDir)
}
}
domain 모듈 build.gradle 에 import 해준다.
build.gradle
apply from: '../jpa.gradle'
그리고 마지막으로 gradle build 시 queryDsl plugin 을 찾아 build 할 수 있도록 buildscript 에 다음을 추가해 준다.
buildscript {
ext {
...
}
repositories {
...
gradlePluginPortal() // maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
...
classpath 'gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10'
}
}
이제 compileQueryDsl 를 통해 Q파일을 생성할 수 있다.
728x90
'Project > Table_of_Organization_Management_System' 카테고리의 다른 글
Postman?"No", Http?"Yes" - IntelliJ의 .http를 사용해보자 (0) | 2022.06.17 |
---|---|
ApiResponse 를 사용하자 (0) | 2022.06.16 |
Flyway 사용해보기 (0) | 2022.06.12 |
NEXUS - 사용해보기 (0) | 2022.06.11 |
버전관리 project version - Semantic Versioning (0) | 2022.06.10 |