문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
gradle:jpa_metamodel_generation [2015/02/04 10:15] kwon37xi |
gradle:jpa_metamodel_generation [2022/06/03 09:23] (현재) kwon37xi [QueryDSL] |
||
|---|---|---|---|
| 줄 4: | 줄 4: | ||
| * '' | * '' | ||
| * **Java 6** 이상에서만 작동한다. | * **Java 6** 이상에서만 작동한다. | ||
| + | |||
| + | * TODO [[http:// | ||
| + | |||
| + | ===== QueryDSL ===== | ||
| + | * [[http:// | ||
| + | * [[java: | ||
| + | |||
| + | |||
| + | <code groovy> | ||
| + | apply plugin: " | ||
| + | |||
| + | compile " | ||
| + | |||
| + | |||
| + | ext { | ||
| + | querydslSrcDir = ' | ||
| + | } | ||
| + | |||
| + | |||
| + | querydsl { | ||
| + | library = " | ||
| + | jpa = true | ||
| + | querydslSourcesDir = querydslSrcDir | ||
| + | } | ||
| + | |||
| + | sourceSets { | ||
| + | main { | ||
| + | java { | ||
| + | srcDirs += file(querydslSrcDir) | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | idea { | ||
| + | module { | ||
| + | generatedSourceDirs += file(querydslSrcDir) | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | <code sh> | ||
| + | gradlew clean cleanQuerydslSourcesDir compileQueryDsl | ||
| + | 혹은 | ||
| + | gradlew cleanQuerydslSourcesDir initQuerydslSourcesDir compileQuerydsl processQUerydslResources | ||
| + | |||
| + | # cleanQuerydslSourcesDir 를 하지 않을 경우 기존 생성된 코드 때문에 오류가 발생함. | ||
| + | </ | ||
| + | ===== Cannot find symbol 오류 ===== | ||
| * [[java: | * [[java: | ||
| - | | + | |
| - | * 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다.< | + | * 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다. |
| + | < | ||
| " | " | ||
| " | " | ||
| 줄 12: | 줄 62: | ||
| + | ===== Gradle Annotation Process 예 ===== | ||
| http:// | http:// | ||
| + | |||
| + | |||
| + | Gradle 기반으로 정적 분석 도구 사용시에 여기서 자동 생성된 클래스는 정적 분석에서 예외처리해줘야 한다.(''/ | ||
| + | |||
| + | |||
| <code groovy> | <code groovy> | ||
| 줄 32: | 줄 88: | ||
| srcDir jpaMetamodelGeneratedDir | srcDir jpaMetamodelGeneratedDir | ||
| } | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | idea { | ||
| + | module { | ||
| + | sourceDirs += file(jpaMetamodelGeneratedDir) | ||
| } | } | ||
| } | } | ||
| 줄 60: | 줄 122: | ||
| " | " | ||
| " | " | ||
| - | | + | // processor 지정은 안해도 된다. 안하면 모든 어노테이션 프로세서 실행 |
| - | ] | + | " |
| ) | ) | ||
| } | } | ||
| 줄 67: | 줄 129: | ||
| // 필요하면 compileJava가 generateJpaMetamodel 에 의존하도록 변경한다. | // 필요하면 compileJava가 generateJpaMetamodel 에 의존하도록 변경한다. | ||
| </ | </ | ||
| + | |||
| + | ==== Lombok 사용시 ==== | ||
| + | [[java: | ||
| + | |||
| + | < | ||
| + | task generateQueryDSL(type: | ||
| + | source = sourceSets.main.java | ||
| + | classpath = configurations.compile | ||
| + | destinationDir = queryDslOutput | ||
| + | options.compilerArgs = [ | ||
| + | " | ||
| + | / | ||
| + | " | ||
| + | ] | ||
| + | } | ||
| + | compileJava.dependsOn(generateQueryDSL) | ||
| + | </ | ||
| + | |||