Skip to content

QueryDsl Configuration (Gradle, IDEA)

정명주(myeongju.jung) edited this page Apr 30, 2018 · 2 revisions

gradle

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)

maven

    <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>

IntelliJ IDEA

Annotation Processors 에 새로운 프로필을 만든다

  • QueryDsl

새로운 프로필에 설정

IDEA query configuration

  • Module content root 를 선택
  • Annotation Processor를 영역 하단 +를 선택 해서 직접 등록한다.
    • com.querydsl.apt.jpa.JPAAnnotationProcessor
    • lombok.launch.AnnotationProcessorHider$AnnotationProcessor
  • [확인]

새로운 프로필을 적용

  • 적용할 모듈을 선택 후 적용한다.
Clone this wiki locally