QueryDsl Configuration (Gradle, IDEA) - redutan/redutan.github.io GitHub Wiki
queryDsl.gradle
// queryDslμ ν΅ν΄ μλμ μμ±λλ QTypeμ μ μ₯ κ²½λ‘
def queryDslOutput = hasProperty("querydslGeneratedDir") ? querydslGeneratedDir : "src/main/generated"
def queryDslOutputDir = file(queryDslOutput)
println displayName + " QueryDsl Generated Q-Type output dir : " + queryDslOutput
// queryDslμ ν΅ν΄ μλμ μμ±λλ QTypeμ μ μ₯ κ²½λ‘λ₯Ό μμ€λλ ν λ¦¬λ‘ ν¬ν¨μν¨λ€.
sourceSets {
main {
java {
srcDirs += queryDslOutputDir
}
}
}
dependencies {
compile 'com.querydsl:querydsl-apt'
}
// QType μμ± task
task generateQueryDSL(type: JavaCompile, group: 'build') {
doFirst {
if (!queryDslOutputDir.exists()) {
logger.info("Creating `$queryDslOutputDir` directory")
if (!queryDslOutputDir.mkdirs()) {
throw new InvalidUserDataException("Unable to create `$queryDslOutputDir` directory")
}
}
}
source = sourceSets.main.java
classpath = configurations.compile
options.compilerArgs = [
"-proc:only",
"-processor",
"com.querydsl.apt.jpa.JPAAnnotationProcessor"
]
destinationDir = queryDslOutputDir
}
// ν΄λ¦° μ queryDslμ ν΅ν΄ μλμ μμ±λλ QTypeμ μ μ₯ κ²½λ‘λ μμ νλ€.
clean {
//noinspection GroovyAssignabilityCheck
delete queryDslOutputDir
}
build.gradle
apply from: "$rootProject.projectDir/queryDsl.gradle"
// ...
compileJava.dependsOn(generateQueryDSL)
<dependencies>
...
<!-- persistence:querydsl -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
...
<build>
<plugins>
...
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
QueryDsl
- Module content root λ₯Ό μ ν
-
Annotation Processorλ₯Ό μμ νλ¨ +λ₯Ό μ ν ν΄μ μ§μ λ±λ‘νλ€.
com.querydsl.apt.jpa.JPAAnnotationProcessor
lombok.launch.AnnotationProcessorHider$AnnotationProcessor
- [νμΈ]
- μ μ©ν λͺ¨λμ μ ν ν μ μ©νλ€.