Spring

[Spring] Querydsl Q 파일 생성 Build 실패 - java: cannot find symbol

cheery7272 2022. 2. 7. 02:05

문제

: 프로젝트 빌드가 안됨 - Q 파일 생성 실패

 

해결 

: build.gradle에 추가

// 빌드할때마다 complieQuerydsl 작업 전에 generated/querydsl package를 삭제하고
// 다시 컴파일
compileQuerydsl{
if(file(querydslSrcDir).exists() )
      delete(file(querydslSrcDir))
}

Build.gradle 설정 추가

buildscript {
	ext {
		querydslVer = '1.0.10'
	}
}

dependencies {
	implementation 'com.querydsl:querydsl-jpa:5.0.0'
	implementation 'com.querydsl:querydsl-apt:5.0.0'
	implementation 'com.querydsl:querydsl-mongodb:5.0.0'
}

def querydslSrcDir = "$buildDir/generated/querydsl"

querydsl {
	jpa = true
	springDataMongo = true
	library = "com.querydsl:querydsl-apt"
	querydslSourcesDir = querydslSrcDir
}

compileQuerydsl {
	options.annotationProcessorPath = configurations.querydsl
}

configurations {
	querydsl.extendsFrom compileClasspath

	all*.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
	all*.exclude group: 'org.springframework.boot', module: 'logback-classic'
}

sourceSets {
	main {
		java {
			srcDirs = ['src/main/java', querydslSrcDir]
		}
	}
}

task deleteGeneratedSources(type: Delete) {
	delete file(querydslSrcDir)
}

tasks.withType(JavaCompile) { it.dependsOn('deleteGeneratedSources') }

compileQuerydsl {
	if(file(querydslSrcDir).exists() )
		delete(file(querydslSrcDir))
}