Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

공유메모장

Querydsl build.gradle 설정 본문

개발공부

Querydsl build.gradle 설정

댕칠이 2023. 8. 3. 13:45

스프링 2.6.4 이후 버전부터 querydsl 설정이 바뀌었댄다.

여러가지 querydsl 설정을 시도해봤는데,

1. build.gradle 실행까지는 잘 되는데 application을 실행하면 갑자기 Q클래스들이 디렉토리에서 사라짐

1-2. execution failed for task ':compilequerydsl'. > annotation processor '' not found 뜨면서 application 실행안됨

2. Q클래스 인식못함 

3. 컴파일했더니 

task 'compilequerydsl' not found in root project

task 'compilejava' not found in root project

 

뭐가 문제인지 찾을 수 없어서 그냥 실행되는 코드 찾아왔다.

 

//query ..... 처럼 주석되어있는 부분만 긁어서 현재 프로젝트의 build.gradle에 적용하면 된다.

build.gradle 

buildscript {
    ext {
        queryDslVersion = "5.0.0"
    }
}

plugins {
    id 'java'
    id 'war'
    id 'org.springframework.boot' version '2.7.14'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
    //querydsl 추가
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

group = 'org.zerock'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '11'
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    //mysql 연동
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1'
    runtimeOnly 'mysql:mysql-connector-java:8.0.25'

    //querydsl 추가
    implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
    implementation "com.querydsl:querydsl-apt:${queryDslVersion}"

}
    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
}
//querydsl 추가 끝