[QueryDSL] 최신! 환경설정

2024. 3. 6. 22:09Memorizing/Java

728x90

본 포스팅은 QueryDSL-JPA의 환경설정을 다룹니다.

문제 상황

  • 김영한님 QueryDSL 강의 듣고 있는데, 강의에서 제공해준 메뉴얼대로 아래와 같이 gradle을 작성했는데 빌드가 제대로 안됨.
plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.0'
    id 'io.spring.dependency-management' version '1.1.4'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}
repositories {
    mavenCentral()
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    //test 롬복 사용
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
    //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"
}
tasks.named('test') {
    useJUnitPlatform()
}
clean {
    delete file('src/main/generated')
}

해결 방법

  • annotationProcessor에 있는 버전을 아래와 같이 수정하면됨.
  • 아래와 같이 gradle을 작성한 후, build를 clean하고 compile을 진행하면됨.
plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.0'
    id 'io.spring.dependency-management' version '1.1.4'
}

group = 'study'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}
repositories {
    mavenCentral()
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    //test 롬복 사용
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
    //Querydsl 추가
    implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
tasks.named('test') {
    useJUnitPlatform()
}
clean {
    delete file('src/main/generated')
}

추가 문제 상황

  • 위의 과정을 거치면 "build > generated >querydsl> study.querydsl.entity.QHello.java"가 있어야하는데, 아무리해도 안생기는 것!

추가 문제 해결 방법

  • 알고보니 다른 폴더에 있었음.
  • 왜 querydsl 폴더가 안생기는지 모르겠는데 하여튼 안생기고 다른 폴더에 생겼음.

'Memorizing > Java' 카테고리의 다른 글

[Java] 초간단! 쿠키, 세션, 토큰  (0) 2024.02.29
[Java] 제네릭 - 2  (0) 2024.02.19
[Java] 제네릭 - 1  (0) 2024.02.19
[Java] 프로세스와 스레드 - 4  (1) 2024.02.17
[Java] 프로세스와 스레드 - 3  (0) 2024.02.17