728x90
Spring Boot 2.7.3에서 Querydsl 5.0.0 gradle 설정하기
gradle에서 Querydsl 5.0 버전을 추가할 때, 올바르게 설정해주지 않으면 java.lang.NoSuchFieldError 등과 같은 에러가 발생하거나, Q클래스가 생성이 안되는 문제가 있어서 해결한 뒤 gradle 설정을 공유해본다.
// QueryDSL 추가
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'org.springframework.boot' version '2.7.3'
id 'io.spring.dependency-management' version '1.0.13.RELEASE'
//querydsl 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id 'java'
}
group = 'inhatc.capstone'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// QueryDSL
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
implementation "com.querydsl:querydsl-core:${queryDslVersion}"
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jpa"
annotationProcessor 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final'
annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2'
}
tasks.named('test') {
useJUnitPlatform()
}
//querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
Gradle 빌드 후 Run을 해보면 아래와 같이 build 폴더 → querydsl → generated 를 보면 Q클래스들이 생성되어 있는걸 볼 수 있다.
참고
728x90
'JAVA > Spring' 카테고리의 다른 글
[Spring Security] BCryptPasswordEncoder란? (2) | 2022.10.15 |
---|---|
Spring No property 'desc' found for type 'LocalDateTime’ 오류 (2) | 2022.10.08 |
[Spring Boot] Swagger-ui로 API Docs 자동화하기 (0) | 2022.09.01 |
[Spring Boot] LocalDateTime Format 설정하기 (0) | 2022.08.26 |
[Spring Boot] DTO 유효성 검증 그룹화 및 순서 지정과 테스트하기 (0) | 2022.07.09 |