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