Spring boot 2.7 영한님 강의 Q클래스 경로와 똑같이 할 수 있는 설정 공유합니다.
729
// 1. queryDsl version 정보 추가
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'org.springframework.boot' version '2.6.3'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
// 2. querydsl plugins 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id 'java'
}
//...
dependencies {
// 3. querydsl dependencies 추가
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
//...
}
test {
useJUnitPlatform()
}
/*
* queryDSL 설정 추가
*/
// querydsl에서 사용할 경로 설정
def querydslDir = "$buildDir/generated/querydsl"
// JPA 사용 여부와 사용할 경로를 설정
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
// build 시 사용할 sourceSet 추가
sourceSets {
main.java.srcDir querydslDir
}
// querydsl 컴파일시 사용할 옵션 설정
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
// querydsl 이 compileClassPath 를 상속하도록 설정
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}다른 분께서도 내용 공유를 해주셨습니다만, 저같은 경우에는 영한님 강의와 똑같은 경로로 Q클래스 생성하면서 진행하고 싶어 방법을 찾아보다가 다음 설정을 찾았습니다.
출처 : https://data-make.tistory.com/728
저같은 경우 문제는 다음과 같았습니다.
compileQuerydsl 로 Q클래스 생성 후, 테스트 코드를 돌리면
java: Attempt to recreate a file for type study.querydsl.entity.QHello에러 발생generated 폴더를 삭제 후, 테스트 코드를 돌리면 성공.
위 상황에서 테스트 코드를 Run 하기 전에 항상 Q 클래스를 만들려고 시도한다는걸 알게되서 build.gradle 마지막에 기존에 Q 클래스가 있다면 삭제하고 진행하라고 코드를 넣어도 똑같은 현상이 반복됐었습니다.
이 후 검색을 하다가 위의 설정을 알게됐습니다. compileQuerydsl 로 Q 클래스 생성 후, 테스트 코드를 돌려도 잘작동합니다.
만약 영한님하고 같은 화면, 흐름으로 강의를 진행하시고 싶은 분들 있으시면 참고하시면 좋을것 같아요.
다들 화이팅입니다.
정처기2회실기를 마치고.
0
20
0
방산 SW 개발자가 되기 위한 조언을 부탁드립니다!
1
112
1
JAVA로 백엔드 프로젝트
0
82
1
26년1회 실기 합격할수 있을까??ㅠㅠ
0
184
1
자바 실무 단계
0
318
2
진로가 큰 걱정입니다...
0
308
1
공부 방향
0
322
1
안녕하세요! 실무와 관련되서 질문드립니다!
0
340
1
함수형 인터페이스 활용
0
361
1
WebFlux를 실무에 적용하기 전에 고민이 있습니다.
0
311
0
코딩테스트 준비
0
472
1
공부하다 진도를 못 나가고 있어요 ㅜㅜ
0
409
1





