Java
Gradle 5.0에서의 querydsl Q-class 생성
Y2K
2018. 11. 29. 16:33
gradle이 major update를 할 때마다 querydsl Q-class들의 생성방법이 계속해서 바뀌고 있습니다. 이제는 좀 더 자연스러운 방법으로 처리가 되네요. 더 이상 추가 task를 만들 필요없이 지원이 가능합니다.
변경된 build.gradle
입니다. lombok
과 querydsl
을 모두 적용한 상태입니다.
dependencies {
annotationProcessor(
"com.querydsl:querydsl-apt:${rootProject.ext.querydslVersion}:jpa",
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
"javax.annotation:javax.annotation-api:1.3.2",
"org.projectlombok:lombok"
)
}
sourceSets {
main.java.srcDirs += [ generated ]
}
tasks.withType(JavaCompile) {
options.annotationProcessorGeneratedSourcesDirectory = file(generated)
}
clean.doLast {
file(generated).deleteDir()
}
간단한 설명입니다. annotationProcessor
는 compile시의 annotationProcessor
를 gradle에서 자동으로 추가해줍니다. 이때 사용되는 각각의 jar
를 추가해주면 됩니다. 기존의 generateQueryDsl
을 전혀 할 필요가 없습니다. 다음 JavaCompile
환경에 생성될 Q-class
들의 위치를 지정해주고 그 위치를 sourceSets
에 추가합니다. 마지막으로 clean
으로 생성된 Q-class
들을 제거해주는 코드를 넣어줍니다.
gradle
에서 annotationProcessor
를 지원함으로서 더욱 편하게 QueryDsl
을 지원할 수 있게 되었습니다.