에러 내용
muliple 프로젝트로 gradle를 사용하고 있는데 갑자기 "does not exist" 에러가 발생했다.
> Task :varsql-core:compileQuerydsl FAILED
F:\02.test\test\test-core\src\main\java\com\test\core\common\util\DataExportUtil.java:27: error: package com.varsql.core.common.constants does not exist
import com.varsql.core.common.constants.BlankConstants;
.....
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test-projecet:compileQuerydsl'.
> Compilation failed; see the compiler error output for details.
해결방안
기본 설정.
def querydslSrcDir = 'src/main/generated'
querydsl {
library = "com.querydsl:querydsl-apt"
jpa = true
querydslSourcesDir = querydslSrcDir
}
compileQuerydsl{ // querydsl 컴파일시 사용하는 애노테이션프로세서('com.querydsl.apt.jpa.JPAAnnotationProcessor')의 경로를 querydsl 이 지정한 경로를 이용한다는 선언
options.annotationProcessorPath = configurations.querydsl
}
configurations {
querydsl.extendsFrom compileClasspath
}
sourceSets {
main {
java {
srcDirs = ['src/main/java', querydslSrcDir]
}
}
}
해결 설정.
def querydslSrcDir = 'src/main/generated'
querydsl {
library = "com.querydsl:querydsl-apt"
jpa = true
querydslSourcesDir = querydslSrcDir
}
compileQuerydsl{ // querydsl 컴파일시 사용하는 애노테이션프로세서('com.querydsl.apt.jpa.JPAAnnotationProcessor')의 경로를 querydsl 이 지정한 경로를 이용한다는 선언
options.annotationProcessorPath = configurations.querydsl
}
configurations {
querydsl.extendsFrom compileClasspath
}
sourceSets {
main {
java {
srcDirs = ['src/main/java', querydslSrcDir]
}
}
}
// 이 부분이 추가.
tasks.withType(JavaCompile) {
options.annotationProcessorGeneratedSourcesDirectory = file(querydslSrcDir)
}