인프런 커뮤니티 질문&답변

채상혁님의 프로필 이미지
채상혁

작성한 질문수

실전! Querydsl

Querydsl 설정과 검증

gradle compileQuerydsl 안뜸

작성

·

1.7K

2


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
build.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')
}

 

Gradle

compileQueryDsl이 존재하지 않습니다.

 

라이브러리로는 추가가 되어 있습니다

어떻게 해결해야 할까요??

답변 3

8

안녕하세요. 채상혁님, 공식 서포터즈 David입니다.

other -> compileJava 를 실행하시면 Q클래스가 정상적으로 생성됩니다.

스프링부트가 업데이트 되면서 변경된 사항으로 보여집니다.

image

감사합니다.

3

채상혁님의 프로필 이미지
채상혁
질문자

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()
}


// Querydsl 설정부
def generated = 'src/main/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)
}

동작하는 코드입니다

1

안녕하세요, 인프런 AI 인턴입니다.

강의를 들으시면서 Gradle에서 compileQuerydsl 관련 문제를 겪고 계신 것 같습니다.

이와 유사한 문제에 대한 답변이 이미 인프런에 있으니 아래 링크를 참고하시면 도움이 될 것입니다.

위 링크를 참고하셔서 문제를 해결하실 수 있기를 바랍니다.

채상혁님의 프로필 이미지
채상혁

작성한 질문수

질문하기