문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
gradle:jpa_metamodel_generation [2015/02/04 10:17] kwon37xi [Gradle Annotation Process 예] |
gradle:jpa_metamodel_generation [2022/06/03 09:23] kwon37xi [QueryDSL] |
||
---|---|---|---|
줄 5: | 줄 5: | ||
* **Java 6** 이상에서만 작동한다. | * **Java 6** 이상에서만 작동한다. | ||
- | ====== Cannot find symbol 오류 | + | * 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) | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | gradlew clean cleanQuerydslSourcesDir compileQueryDsl | ||
+ | 혹은 | ||
+ | gradlew cleanQuerydslSourcesDir initQuerydslSourcesDir compileQuerydsl processQUerydslResources | ||
+ | |||
+ | # cleanQuerydslSourcesDir 를 하지 않을 경우 기존 생성된 코드 때문에 오류가 발생함. | ||
+ | </ | ||
+ | ===== Cannot find symbol 오류 ===== | ||
* [[java: | * [[java: | ||
- | * 정황상 [[java: | + | * 정황상 [[java: |
* 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다. | * 이 둘을 함께 지정해서 APT 를 수행해야 에러가 나지 않는다. | ||
< | < | ||
줄 15: | 줄 61: | ||
- | ====== Gradle Annotation Process 예 ====== | + | ===== Gradle Annotation Process 예 ===== |
http:// | http:// | ||
+ | |||
+ | |||
+ | Gradle 기반으로 정적 분석 도구 사용시에 여기서 자동 생성된 클래스는 정적 분석에서 예외처리해줘야 한다.(''/ | ||
+ | |||
+ | |||
<code groovy> | <code groovy> | ||
줄 36: | 줄 87: | ||
srcDir jpaMetamodelGeneratedDir | srcDir jpaMetamodelGeneratedDir | ||
} | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | idea { | ||
+ | module { | ||
+ | sourceDirs += file(jpaMetamodelGeneratedDir) | ||
} | } | ||
} | } | ||
줄 71: | 줄 128: | ||
// 필요하면 compileJava가 generateJpaMetamodel 에 의존하도록 변경한다. | // 필요하면 compileJava가 generateJpaMetamodel 에 의존하도록 변경한다. | ||
</ | </ | ||
+ | |||
+ | ==== Lombok 사용시 ==== | ||
+ | [[java: | ||
+ | |||
+ | < | ||
+ | task generateQueryDSL(type: | ||
+ | source = sourceSets.main.java | ||
+ | classpath = configurations.compile | ||
+ | destinationDir = queryDslOutput | ||
+ | options.compilerArgs = [ | ||
+ | " | ||
+ | / | ||
+ | " | ||
+ | ] | ||
+ | } | ||
+ | compileJava.dependsOn(generateQueryDSL) | ||
+ | </ | ||
+ | |||