[Spring]Spring boot 3.0 이상 Query DSL 설정

yeonjoo913·2023년 10월 29일
0

Spring

목록 보기
15/19

새로운 프로젝트를 시작하며 spring을 2.6.x에서 3.1.x 로 업그레이드하였다. 그런데 버전이 올라가며 QueryDsl 설정 방법이 변경되었다. 변경 사항에 대해 정리해보고자 글을 작성한다.

build.gradle 설정

plugins {
    id 'io.spring.dependency-management' version '1.1.2'
    id 'java'
}

repositories {
    mavenCentral()
}


dependencies {
    // JPA
    api 'org.springframework.boot:spring-boot-starter-data-jpa:3.1.2'
    api 'org.hibernate.orm:hibernate-core:6.2.6.Final'

    // JDBC
    api "org.springframework.boot:spring-boot-starter-jdbc:3.1.2"

    // MariaDB
    implementation 'org.mariadb.jdbc:mariadb-java-client:2.4.1'

    // qeurydsl
    implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
    annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
    annotationProcessor 'jakarta.annotation:jakarta.annotation-api:2.1.1'
    annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"

    // lombok
   compileOnly 'org.projectlombok:lombok'

    //springdoc
    api 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

    api 'org.apache.commons:commons-configuration2:2.4'


    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}


test {
    useJUnitPlatform()
}

jar { enabled = true }


tasks {
    processResources {
        duplicatesStrategy = org.gradle.api.file.DuplicatesStrategy.INCLUDE
}
}

// QueryDSL 설정법 (3.0 버전)
def generated = "$buildDir/generated"

// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
    options.getGeneratedSourceOutputDirectory().set(file(generated))
}

// java source set 에 querydsl QClass 위치 추가
sourceSets {
    main.java.srcDirs += [ generated ]
}

// gradle clean 시에 QClass 디렉토리 삭제
clean {
    delete file(generated)
}

눈에 띄는 변경 사항

  • plugins
    • id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" Querydsl 플러그인 사용 안함.
  • dependencies
    • implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
      annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
      annotationProcessor 'jakarta.annotation:jakarta.annotation-api:2.1.1'
      annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"
  • 기타 querydsl 빌드 옵션 설정

참고 블로그

https://velog.io/@daoh98/Query-DSL-Spring-boot-3.0-%EC%9D%B4%EC%83%81-Query-DSL-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95

profile
주니어 백엔드 개발자. 까먹는다 기록하자!

0개의 댓글