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

작성자 없음

작성자 정보가 삭제된 글입니다.

실전! Querydsl

Querydsl 설정과 검증

compileQuerydsl없음

작성

·

2.5K

·

수정됨

1

안녕하세요

현재 프로젝트 세팅부터 막혀서 질문 드립니다.

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

 

  1. build 잘됨

  2. Gradle Tasks other compileQuerydsl -> 없음

      ( spring boot3이상으로 되면서 안보이는게 맞나요)?

 

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


def querydslSrcDir = 'src/main/generated'
clean {
	delete file(querydslSrcDir)
}

tasks.withType(JavaCompile) {
	options.generatedSourceOutputDirectory = file(querydslSrcDir)
}

 

 

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

 

 

https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit

  1. 위의 docs 설정만 build.gradle에 기입하면 src/main/generated가 생성이 안되는데 이유가 뭔가용??

  2. build폴더 말고, main/generated폴더에 Q파일이 생성되었는데 잘못 생성된건가요.?

     

     

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

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

 

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

 

추가로,, 현재 build.gradle에

$buildDir은 사용이 안된다고 하네요..!스크린샷 2024-01-02 오후 2.53.08.png

 

답변 3

3

제가 해결(?) 해본 방법을 공유해보겠습니다. 이렇게도 해보고, 저렇게도 해보면서 하나하나 해보다 발견된거라 깊게 이해하진 못합니다.
하지만, 다른분들 문제해결에는 도움이 되길 바라며 글을 남깁니다

  1. compileQuerydsl -> 없는 문제
    - 이건 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"plugins에 추가해주어야 Tasks other compileQuerydsl 컴파일에 추가가 됩니다.
    image- 하지만, Tasks other compileQuerydsl 컴파일설정이 되어있지않기에 실행하면 에러가 나기에, 이미 영한님이 올려주신 방법으로 추가해주시면 됩니다!
    image- compileQuerydsl 컴파일 실행하면 아래와 같이 build 폴더 아래에 생성됩니다.
    imageimage

    +++++++++++++추가적인 점++++++++++++++
    사실 build build 컴파일 로 실행시켜도 querydsl을 실행이 되며,
    ```
    sourceSets { main { java { srcDirs = ["$projectDir/src/main/java", "$projectDir/build/generated"] } } }
    ```


    image를 추가해도 build폴더에 생성이 됩니다. 다만, build이기때문에 querydsl외에도 전체가 실행됩니다.image
    image

  2. 3. build폴더 말고, main/generated폴더에 Q파일이 생성되었는데 잘못 생성된건가요.
    - 컴파일 실행할때 , def querydslDir = "$buildDir/generated/querydsl" 의 경로에 영향이 있습니다.
    "$buildDir/generated/querydsl"

    이 경로가 기본적으로 build파일에 생성되게 해주는 것을 보았기때문에,
    임의로 경로를 바꾸면, 다른 폴더에 Q파일이 생성되는 것입니다.

0

First, you need to ensure that Infinite Craft you have set the querydsl.version property correctly. Make sure the currently set version matches the version used in your Gradle script.

0

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

수강생님의 QueryDSL 설정 관련 질문에 대해 유사한 문제를 겪었던 다른 수강생의 질문과 강사님의 답변이 도움이 될 것 같습니다.

질문자 porkbelly님이 겪고 계신 문제와 비슷한 상황으로, 특히 compileQuerydsl과 관련된 설정 및 문제 해결 방법에 대한 내용이 포함되어 있습니다. 아래의 링크를 통해 해당 답변을 확인하시면 문제 해결에 도움을 받으실 수 있을 것입니다.

추가로, 강사님께서 제공한 링크에서는 다른 수강생의 해결 방법도 제시되어 있으니 참고하시면 좋을 것 같습니다.

도움이 되시길 바랍니다. 감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기