개발 일기

SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기 본문

Spring

SpringBoot 2.5.X 버전 이상에서 QueryDsl 설정하기

dev-jo 2021. 8. 5. 00:18

이번 포스팅은 간단하게 querydsl 의 돌아가는 내부 설명 없이

 

설정법만 기록하겠습니다.

 

 

  스프링부트 gradle querydsl
버전 2.5.2 7.1.1 4.3.1

 

plugins {
    id 'org.springframework.boot' version '2.5.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    id 'java-library' // QueryDSL must have < 핵심 >
}

group = 'com.dj.server'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

def querydslVersion = '4.3.1'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {

    //web or spring-starter
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-mail'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'

    //security
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

    //db
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'

    //querydsl < 핵심 >
    implementation group: 'com.querydsl', name: 'querydsl-jpa', 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'


    //websocket
    implementation 'org.springframework.boot:spring-boot-starter-websocket'

    //swagger
    implementation 'io.springfox:springfox-swagger2:2.9.2'
    implementation 'io.springfox:springfox-swagger-ui:2.9.2'

    //lombok
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'


    //test
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
    testImplementation 'com.h2database:h2:1.4.200'
//    testImplementation 'com.querydsl:querydsl-jpa'
//    testImplementation 'com.querydsl:querydsl-apt'

}

// jar plain 파일 생성안되게
// 참고 https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#packaging-executable.and-plain-archives
jar {
    enabled = false
}

test {
    useJUnitPlatform()
}

 

이렇게 해줘야 QClass 가 정상적으로 생성됩니다.

 

<핵심> 부분만 보시면 됩니다.

 

 

참고 사이트

http://honeymon.io/tech/2020/07/09/gradle-annotation-processor-with-querydsl.html

 

[gradle] 그레이들 Annotation processor 와 Querydsl - I'm honeymon(JiHeon Kim).

이 글에서 다룰 예정인 ‘Querydsl’과 ‘Annotation processor’ 에 관한 내용도, 스프링 부트를 버전업하는 과정에서 겪게 된다. 사내 개발기기 교체주기가 되어 새로운 맥북을 받고 스프링 부트 버전

honeymon.io

 

https://frogand.tistory.com/m/41

 

[Spring JPA] QueryDsl와 Gradle 그리고 AnnotationProcessor

발단> 1. Gradle 버전이 4.*에서부터 5.* 최근에는 6.7까지 출시 2. Spring boot 2.3부터 Gradle 버전 6.3 이상을 요구 개발환경> spring boot 2.4 Gradle 6.7.1 인텔리제이에서 프로젝트를 진행하면서 QueryDsl을..

frogand.tistory.com

 

QueryDSL Repository 이슈에서 발견한 설정법

 

https://github.com/querydsl/querydsl/issues/2444

 

How to both use `Querydsl` and `lombok` with gradle? · Issue #2444 · querydsl/querydsl

java 11 gradle 5.4 idea 2018.3 This is my gradle config plugins { id 'java' id 'idea' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id "org.spring...

github.com

 

alexcg1986 이분 이슈 글 확인.