Querydsl 버전 별 build.gradle 설정 파일에 대해 궁금한 점이 있습니다.
156
작성한 질문수 31
자주 하는 질문 + 강의 자료를 종합해봤을 때 Querydsl 설정이 크게 다음 3가지로 나뉘는 것 같더라고요.
2.x 버전 / dependencies 바깥에 설정
plugins {
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
//querydsl 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id 'java'
}
//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
2.x 버전 / dependencies 안에 설정
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')
}
3.x 버전 / dependencies 안에 설정
dependencies {
//Querydsl 추가
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
clean {
delete file('src/main/generated')
}
2.x 의 경우 선택지가 2가지가 되는 데 왜 강의에선 1번 케이스를 선택했던 건지 궁금합니다!
2번 선택지가 더 깔끔한 거 아닌가요 ?
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
수하님, Querydsl 설정에 대해 질문해주셨네요! Querydsl을 사용할 때, build.gradle 설정은 버전과 프로젝트 구조에 따라 조금씩 달라질 수 있습니다. 여기서 언급하신 선택지들은 각자 장단점이 있으며, 강사님이 특정 방법을 선택하신 이유도 상황에 맞춰 더 적합하다고 판단하셨기 때문일 가능성이 큽니다.
2.x 버전 under plugins: 이 설정은 Querydsl 라이브러리를 플러그인으로 추가해서 사용할 수 있도록 설정하는 방식입니다. 이 방식은 Querydsl 기능을 빌드 프로세스와 더 잘 통합하고, 전체 프로젝트 빌드 구조의 여러 측면을 쉽게 조정할 수 있는 유연성을 제공합니다.
2.x 및 3.x 버전 under dependencies: 이 방식은 최종적인 종속성 관리에만 집중합니다. 단순히 추가된 라이브러리를 사용할 수 있도록 하며, 빌드 구성 요소와 통합은 따로 신경 쓰지 않아도 되기에 설정이 단순해질 수 있습니다. 다만, 각자의 프로젝트에 따라 플러그인 방식보다 빌드 유연성이 떨어질 수 있습니다.
강의에서 선택한 이유: 강사님이 1번 설정을 선택한 이유는, 아마 강의에서 다루는 전체 학습 목표 및 테스트 환경에서 이 방식이 가장 안정적이라고 판단하여서일 것입니다. 특히, 플러그인 방식은 환경 관리를 용이하게 하고, 빌드 시 특정 작업을 적용하는 데 유리하다는 장점이 있어, 교육적으로 더 나은 선택이 되었을 수 있습니다.
따라서, 두 방식 모두 유효한 방법이며, 프로젝트의 요구사항과 개인의 선호에 따라 적합한 방법을 선택하면 됩니다. 강의의 목적이 특정 환경에서 안정적으로 기능을 작동시키는 것이라면, 그 환경에 맞게 최적의 설정을 추천하는 것일 테니 너무 걱정하지 않으셔도 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
기타 관련 링크는 다음과 같습니다:
- Querydsl 설정 관련 기존 질문 링크 #1
- Querydsl 설정 관련 기존 질문 링크 #2
감사합니다.
SpringBoot 4.X에서의 Querydsl 설정
0
122
2
querydsl 오픈소스에 대한 질문
1
87
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
118
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
336
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
78
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
168
1
querydsl sum() 메서드 없어요.
0
165
2
build 디렉터리 생성
0
147
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
119
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
97
1
오타 제보 드립니다.
0
76
2
벌크 연산과 flush, clear
0
81
1
Run As Intellij 로 변경시 Q타입 import 불가
0
93
1
QHello import하기 문제 발생
0
152
2
등록된 함수 보는법(H2Dialect) 질문
0
73
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
203
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
207
1
querydsl 설정 문제
0
225
2
quey dsl 설정부분
0
160
2
count 쿼리 관련 질문입니다!
0
77
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
92
1
답변부탁드리겠습니다.
0
92
2
(OrderSpecifier)관련 내용 어디있을가요
0
67
1
중급문법 벌크연산에서
0
84
2





