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

김주영님의 프로필 이미지
김주영

작성한 질문수

실전! Querydsl

Q파일 생성 위치 질문

해결된 질문

작성

·

680

1

안녕하세요

현재 프로젝트 세팅 및 테스트를 진행 중입니다.

 

spring boot가 3이상으로 제한된 상황속에서 진행중이며, 강의 내용을 따라하고 있습니다!

 

build.gradle은 https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.vfy9wirpglmx

를 복/붙 하였습니다.

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

 

질문은 크게 3가지입니다.

  1. build/other/compileQuerydsl은 표기가 안되는데 다른 답변을 보니 springboot3으로 올라가며 compileQuerydsl은 표기가 안된다고 하신 것 같은데 맞을까요?

    스크린샷 2024-01-02 오후 3.24.05.png

  2. 정확한 Q파일의 생성 위치가 궁굼합니다.!

    1. 강의상에서는 src/main에 둬도 괜찮지만, 버전관리 시스템(git)에는 추가 되지 않는게 좋다고 하셨던 것 같은데 맞나요?

    2. build에만 Q파일이 생성되는게 좋나요?

  3. 올려주신 google doc의 build.gradle로 진행하면, Q파일이 build/annotationProcessor아래 생성됩다...

    뭐가 문제일까요?

     

스크린샷 2024-01-02 오후 3.25.54.png

 

  1. docs에 올려주신 build.gradle에서 build clean을 진행할 때 'src/main/generated'의 폴더를 삭제하는 이유가 무엇일까요? (현재 저는 Q파일을 build/ 아래 관리하고있는데, src/main/generate 아래 Q파일을 생성하시는 분들에만 해당 되는 내용인가요?)

답변해주시면 감사하겠습니다!

답변 2

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김주영님

Setting -> Gradle 설정에 보면 IntelliJ에서 프로젝트를 빌드하는 방법이 2가지가 있습니다.

IntelliJ IDEA에서 빌드

Gradle에서 빌드

  1. 네 맞습니다. 이제는 단순히 실행이나 빌드만 하면 자동으로 Q 파일이 생성됩니다.

  2. IntelliJ 빌드와 Gradle 빌드에 따라 생성 위치가 달라집니다. 지금은 Gradle 빌드를 권장합니다. 이 경우 build 폴더에 생성됩니다. build 폴더 자체가 버전관리 시스템에 포함되지 않기 때문에 문제가 없습니다.

  3. 해당 폴더에 생성되어도 인식만 되면 괜찮습니다.

  4. IntelliJ 빌드를 사용하는 경우 해당 폴더에 Q 파일이 생성됩니다. 지금은 Gradle 빌드를 권장하기 때문에 이 부분은 무시하셔도 괜찮습니다.

감사합니다.

김주영님의 프로필 이미지
김주영
질문자

헉..감사합니다!! 모든 고민 지점이 해결 됐습니다.

강의 잘 듣고있습니다!

0

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

질문 주신 내용에 대한 유사한 상황을 겪은 다른 수강생의 질문과 강사님의 답변을 찾았습니다. 해당 답변은 Spring Boot 3.0 이상 버전에서 QueryDSL 설정에 대한 내용을 포함하고 있으며, Q 파일 생성 위치와 관련된 질문에 대한 해결 방법을 제시하고 있습니다.

  1. Q 파일이 생성되는 위치와 관련하여, build 폴더 안에 생성되는 것이 일반적인 설정 방법입니다. 강사님은 build 폴더에 Q 파일이 생성되도록 의도한 것으로 보시면 된다고 답변하셨습니다. git에는 보통 함께 올리지 않는 것이 좋다는 의견을 제시하셨습니다.

  2. compileQuerydsl 작업이 Gradle 태스크에 표시되지 않는 문제와 관련하여, 강사님이 참고하라고 안내해주신 링크를 확인해보시면 도움이 될 것 같습니다.

아래는 관련된 질문과 강사님의 답변 링크입니다. 자세한 내용은 링크를 통해 확인하실 수 있습니다.

감사합니다.

김주영님의 프로필 이미지
김주영

작성한 질문수

질문하기