QueryDSL 의존성 추가하기
giantim edited this page Jul 8, 2020
·
1 revision
- Intellij
- Spring Boot 2.3.1
- Gradle 6.4.1
Spring Boot의 각 버전에 맞는 QueryDSL 버전 확인
build.gradle 에 의존성을 설정한다.
- plugin에
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
를 추가한다.
- dependencies에 querydsl 의존성을 추가한다.
- QClass가 생성될 경로를 지정한다.
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
구조 - querydsl-core 모듈에서만 QueryDSL을 사용한다. querydsl-admin 모듈에서는 querydsl-core에서 구현한 도메인을 가져다 사용한다.
의존성은 각 모듈의 build.gradle
에 추가한다.
- 최상위 모듈
- repositories에
maven { url "https://plugins.gradle.org/m2/" }
를 추가한다. - dependencies 에
classpath "gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10"
를 추가한다. - 하위 모듈 중 querydsl-core 만 QueryDSL을 사용하므로
subprojects
에는 다른 내용을 추가하지 않는다.
- querydsl-admin
- QueryDSL을 직접 사용하지 않는 모듈이므로 QueryDSL 관련 의존성을 추가하지 않는다.
- querydsl-core
- plugin 과 의존성을 추가해준다.
- QClass가 생성될 경로는 싱글 모듈 프로젝트와 동일하게 지정해준다.
최종 build.gradle
bootJar { enabled = false }
jar { enabled = true }
apply plugin: 'com.ewerk.gradle.plugins.querydsl'
dependencies {
implementation 'com.querydsl:querydsl-jpa'
runtimeOnly 'com.h2database:h2'
}
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
설정을 마치고 IntelliJ 의 gradle 탭에서 reload를 실행하면 다음과 같이 바뀐다.
- 최상위 모듈과 querydsl-core 모듈은 QueryDSL 의존성을 가지므로 gradle 메뉴에 Tasks-querydsl 기능이 생겼다.
- querydsl-admin 모듈은 QueryDSL 의존성이 없으므로 해당 메뉴가 생기지 않았다.
QueryDSL 의존성을 갖는 모듈에 엔티티 클래스를 추가한 후 gradle 탭에서 Tasks-other-compileQuerydsl 을 실행하면 지정한 경로에 엔티티의 QClass가 생성된다.
만약 QueryDSL 의존성을 갖는 모듈에서 엔티티 클래스를 수정했다면 gradle 탭에서 Tasks-querydsl-cleanQuerydslSourcesDir 을 실행한 후 Tasks-other-compileQuerydsl 을 실행해서 QClass를 새로 만들어주어야 한다.
- Jenkins CI/CD 적용하기
- Nginx 적용하기
- docker로 jenkins설치 시 플러그인 설치오류 해결방법
- 데이터베이스 마이그레이션
- Logback, Error 로그 Slack 알림 받기
- Jacoco 적용하기
- SonarQube 적용하기