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

항상배고픔님의 프로필 이미지
항상배고픔

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

Querydsl 설정

Q클래스 파일 생성 오류

작성

·

200

0


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

[질문 내용]

상황: build tool는 Gradle를 사용하고 있습니다.
Gradle -> Tasks -> build -> clean

Gradle -> Tasks -> other -> compileJava
위에 작업을 실행해도 generated폴더에 Q클래스가 생성되지 않습니다.
참고로 generated도 생성되지 않습니다.
다른 분들처럼 오류가 발생하지는 않습니다!!

답변 2

0

안녕하세요. 항상배고픔님, 공식 서포터즈 OMG입니다.

스프링부트 2.6.5 버전을 사용중이라고 하셨는데요, 강의에서 제공해드리는 프로젝트 코드의 부트 버전이 2.6.5네요 😀

강의에서 제공해드리는 코드로 확인하신 걸까요?

제가 확인 했을 때(인텔리제이 유료, 무료 버전 둘 다) 정상 동작하네요 ^^

image.png

이 경로에 Q클래스가 없는걸까요? 다시 한번 확인해주세요 😀

그리고 build.gradle도 아래와 같은지 확인해주세요

강의에서 제공해드리는 build.gradle인데, 수정한 내역이 있다면 정상 동작하지 않을 수 있습니다.

 

plugins {
    id 'org.springframework.boot' version '2.6.5'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

ext["hibernate.version"] = "5.6.5.Final"

configurations {
    compileOnly {
       extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'

    //JdbcTemplate 추가
//  implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    //MyBatis 추가
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
    //JPA, 스프링 데이터 JPA 추가
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

    //Querydsl 추가
    implementation 'com.querydsl:querydsl-jpa'
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"

    //H2 데이터베이스 추가
    runtimeOnly 'com.h2database:h2'

    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    //테스트에서 lombok 사용
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
}

tasks.named('test') {
    useJUnitPlatform()
}

//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거
clean {
    delete file('src/main/generated')
}

 

감사합니다.

강의 자료로 제공해주시는 코드로 사용하고 있지만 Q클래스 폴더가 생성되지 않습니다!!

파일 구조

image.png

 

 

 

bulid.gradle

plugins {
    id 'org.springframework.boot' version '2.6.5'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

ext["hibernate.version"] = "5.6.5.Final"

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'

    //Querydsl 추가 스프링 부트 2.x
    implementation 'com.querydsl:querydsl-jpa'
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"

//    //Querydsl 추가 스프링 부트 3.x
//    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"

    //JPA, 스프링 데이터 JPA 추가
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

    //MyBatis 추가
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'


    //JdbcTemplate 추가
//    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    //H2 데이터베이스 추가
    runtimeOnly 'com.h2database:h2'

    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    //테스트에서 lombok 사용
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
}

tasks.named('test') {
    useJUnitPlatform()
}

//Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거
clean {
    delete file('src/main/generated')
}

 

혹시 몰라서 해당 사진도 남깁니다

image.png

 

올리신 build.gradle을 복사해서 확인해보았는데, 정상 실행이 되네요.

다음을 순차적으로 진행해서 확인해주세요 😀

(1) out 폴더 삭제 : out 폴더 우클릭 > Delete

image.png

(2) clean & build 순서대로 실행

image.png

 

(3) build 폴더 생성 확인

image.png

시도 후 결과를 공유해주세요 😀

선생님이 말씀해주신 방법으로 해결이 안되어서 혼자 만져보다가 해결했습니다!!! 감사합니다

image.png


해당 옵션을 체크해서 해결했습니다. 좋은 답변 감사합니다.

0

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

질문하신 내용에 기반해, Gradle를 사용할 때 generated 폴더에 Q클래스 파일이 생성되지 않는 문제에 대한 정보를 찾아 보았습니다. 이와 관련하여, 유사한 상황을 다뤘던 몇 가지 질문들을 찾았습니다.

  1. “generated 에 Q파일들이 생성이 안 됩니다.”에서는 Spring Boot 버전이 2.7.3일 때 build.gradle 설정 후 generated 폴더에 Q클래스 파일들이 생성되지 않는 문제를 다루고 있습니다. 이 질문은 직접적으로 Gradle 문제를 다루고 있지는 않지만, Q파일 생성에 관련된 일반적인 문제 해결 방법이 유용할 수 있습니다.

  2. “QueryDsl Q파일들이 안보입니다.” 질문에서는 Gradle 설정 후 generated 폴더가 비어있는 문제를 다루고 있습니다. 이 경우, 설정 파일 공유와 재가져오기(reimport)에 관한 조언이 포함되어 있어 참고할 만합니다.

  3. “src/main/generated에 Q… 파일들이 생성이 안됩니다.(build의 generated에는 생성됌.)”에서는 Gradle 설정을 참조하여 Q 파일들이 src/main/generated가 아닌 build/generated/querydsl에 생성되는 상황을 설명하고 있습니다. 이 질문은 generated 폴더의 위치와 관련하여 유용한 정보를 제공할 수 있습니다.

위의 링크들은 Q클래스 파일 생성 문제와 관련된 일반적인 문제 해결 방안을 제시합니다.

질문하신 내용과 구체적으로 동일한 상황을 다룬 답변은 찾지 못했지만, 위의 질문들이 다루고 있는 설정과 절차를 참고하여 문제의 원인을 좀 더 정밀하게 파악하는 데 도움이 될 수 있습니다.

Gradle 설정과 Q클래스 생성에 관련된 문제는 프로젝트 설정, 사용하는 플러그인의 버전, 그리고 Gradle 버전에 따라 다를 수 있기 때문에, 일반적인 해결 방안 외에도 구체적인 프로젝트 설정을 점검하는 것이 중요합니다.

본문에서 언급된 문제를 해결하는 데 필요한 구체적인 설정이나 절차에 대해 추가적인 정보를 원하시면, 강의의 Q&A 섹션에 직접 질문을 남겨보시거나, 이전 질문들에 달린 다른 수강생들의 댓글도 참고해 보시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

현재 1번 상황이랑 같은 상황입니다.
혹시 어떤 이유 때문에 Q클래스 폴더가 안보이는지 알 수 있을까요??
Spring 버전은 id 'org.springframework.boot' version '2.6.5' 입니다

항상배고픔님의 프로필 이미지
항상배고픔

작성한 질문수

질문하기