티스토리 뷰

반응형

 

지난번 이클립스(STS)와 인텔리제이에서 QueryDSL Q클래스를 생성해서 잘 동작하는 것을 확인했었다.

 

[SpringBoot] QueryDSL Q클래스 생성하기 : annotationProcessor 방식 (feat.intelliJ)

 

[SpringBoot] QueryDSL Q클래스 생성하기(feat.intelliJ)

지난번 STS (이클립스) 에서 QueryDSL을 설정했었다. [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) [SpringBoot] QueryDSL Q클래스 생성하기(feat.STS) JPA JPQL 을 사용하던 도중 QueryDSL 로 쿼리를 짜보고 싶어 셋팅

jong-bae.tistory.com

 

프로젝트를 전체 구동시킬때는 querydsl 이 동작하는데는 큰 문제가 없었다. (그래서 별 문제 없는줄...)

근데 인텔리제이 오토빌드를 꺼놨었는데 다시 on 시키면서 빌드가 되지 않는 것을 확인하였다.

 

빌드시 계속 q클래스쪽에 심볼을 찾을 수 없다는 오류...

이런저런 상황을 찾다보니 querydsl과 lombok이 동작 싱크가 서로 안맞을 때 발생하는 것 같았다.

gradle과 intelliJ 의 버전에 따른 querydsl 생성법이 다르다는 것을 알게 되었고

지금 내 현재 버전에는 아래와 같은 방식을 사용하는게 맞다는 것을 알게 되었다.

 

진짜 querydsl 은 툴과 버전과 각종 모든 것에 다 걸쳐서 예민한것 같다... ㅋㅋㅋ

 

 

찾다보니 김영한님의 gradle annotationProcessor 방식 설정으로 해결이 되어서 나의 build.gradle의 변화를 남겨본다.

기존에 쓰던 com.ewerk.gradle.plugins.querydsl 플러그인 관련부를 다 주석처리해버리고 가운데 디펜던시를 추가했다.

 

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.7'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'
//	id 'com.diffplug.eclipse.apt' version '3.37.2'	// 이클립스에서 Mapstruct 사용시
//	id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'  // querydsl 플러그인 생성 방식
}

group = 'com.sample'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
//	querydsl.extendsFrom compileClasspath // querydsl 플러그인 생성 방식
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.0'
	implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4'
	implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1'
//	implementation 'org.projectlombok:lombok'
	implementation 'org.mapstruct:mapstruct:1.5.3.Final'
	implementation 'com.querydsl:querydsl-jpa:5.0.0'
//	implementation 'com.querydsl:querydsl-apt:5.0.0'
	// 추가 ↓
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
	// ↑
	runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.3.Final'
	annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'

	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
	useJUnitPlatform()
}

def generatedDir =  "src/main/generated"

// querydsl 플러그인 생성 방식
//querydsl {
//	library = "com.querydsl:querydsl-apt"
//    jpa = true
//    querydslDefault = true
//    querydslSourcesDir = generatedDir
//}
//
//sourceSets {
//	main {
//		java {
//			srcDirs = ['src/main/java', generatedDir]
//		}
//	}
//}
//
//compileQuerydsl {
//    options.annotationProcessorPath = configurations.querydsl
//}

clean {
	delete file(generatedDir)
}

 

다시 gradle refresh하고 clean하고 build 해놓고

프로젝트 build 를 계속 해봤는데 빌드오류가 사라진 것을 확인하였다.

 

 

 

 

오히려 이클립스(sts)에서 querydsl 관련 오류가 더 안나는듯??? (갸우뚱)

이클립스와 intellJ의 gradle 버전 적용 방식차이로 이런 문제가 발생한 다는 것을 알게 됨...

 

 

[SpringBoot] QueryDSL Q클래스 생성하기 : 플러그인 방식 (feat.STS)

 

[SpringBoot] QueryDSL Q클래스 생성하기(feat.STS)

JPA JPQL 을 사용하던 도중 QueryDSL 로 쿼리를 짜보고 싶어 셋팅해봄. SPRING DATA JPA 레퍼런스에 queryDSL이 언급은 되는데 설정하는 방법 같은 건 딱히 없어서 블로그들 참고하여 셋팅해봄. ​ 먼저 build.

jong-bae.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 


참고링크
 

build.gradle에 querydsl 추가하고나서 Application 실행이 실패합니다 - 인프런 | 질문 & 답변

안녕하세요 강의 항상 잘 듣고 있습니다. MVC 강의 부터 듣다가 최근에 회사에서 JPA 프로젝트를 진행 할 일이 있어서 작년에 결제해두었던 JPA 강의를 급하게 듣고 있습니다. 다름이 아니라 강의

www.inflearn.com

 

반응형
댓글
반응형
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday