문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:lombok [2019/06/24 16:18] kwon37xi |
java:lombok [2021/02/02 18:45] kwon37xi [1.16.20] |
||
---|---|---|---|
줄 9: | 줄 9: | ||
===== Gradle-Lombok ===== | ===== Gradle-Lombok ===== | ||
- | * https://github.com/franzbecker/ | + | * [[https://projectlombok.org/setup/gradle|lombok setup gradle]] |
+ | * [[https:// | ||
+ | * 혹은 다음과 같이 직접 설정< | ||
+ | compileOnly ' | ||
+ | annotationProcessor ' | ||
+ | |||
+ | testCompileOnly ' | ||
+ | testAnnotationProcessor ' | ||
+ | </ | ||
===== javac 메모리 문제 ===== | ===== javac 메모리 문제 ===== | ||
줄 27: | 줄 35: | ||
===== Maven 설정 ===== | ===== Maven 설정 ===== | ||
* http:// | * http:// | ||
- | * Java 1.6 이상에서만 작동한다. Java 코드가 1.6임을 명시하라.< | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | <!-- < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | </ | ||
* 만약 JPA Annotation Processor 때문에 maven-compiler-plugin 의** compilerArgument에 -proc: | * 만약 JPA Annotation Processor 때문에 maven-compiler-plugin 의** compilerArgument에 -proc: | ||
줄 89: | 줄 81: | ||
* 1.4 이하 Ant 태스크 : '' | * 1.4 이하 Ant 태스크 : '' | ||
* 1.6 이상 Ant 태스크 : '' | * 1.6 이상 Ant 태스크 : '' | ||
+ | |||
+ | ===== Upgrade 주의점 ===== | ||
+ | * [[https:// | ||
+ | |||
+ | ==== 1.16.20 @ConstructorProperties ==== | ||
+ | * 이 시점 이후부터 '' | ||
+ | * [[https:// | ||
+ | * 기본 생성자가 없을 경우, [[java: | ||
+ | * '' | ||
+ | |||
+ | ==== 1.18.4 field annotation 들이 getter/ | ||
+ | * 1.18.4 이상 버전은 field 에 지정한 '' | ||
+ | * 문제는 기존에 복제를 안해주는 버전으로 응답을 내려줄때, | ||
+ | |||
+ | >> BREAKING CHANGE: Lombok will now always copy specific annotations around (from field to getter, from field to builder ' | ||
+ | |||
+ | === 구버전 === | ||
+ | |||
+ | <code java> | ||
+ | @JsonProperty(" | ||
+ | private int yyy; | ||
+ | |||
+ | -> 진짜 생성은 | ||
+ | |||
+ | @JsonProperty(" | ||
+ | private int yyy; | ||
+ | |||
+ | public void setYyy(int yyy) { | ||
+ | this.yyy = yyy; | ||
+ | } | ||
+ | |||
+ | -> 이로 인해서 JSON 에 XXX, yyy 두개의 필드가 존재하게 됨. | ||
+ | </ | ||
+ | |||
+ | === 신 버전 Lombok === | ||
+ | <code java> | ||
+ | @JsonProperty(" | ||
+ | private int yyy; | ||
+ | |||
+ | -> 진짜 생성은 | ||
+ | |||
+ | @JsonProperty(" | ||
+ | private int yyy; | ||
+ | |||
+ | // 아래 setter 에도 @JsonProperty 가 붙어버림 | ||
+ | @JsonProperty(" | ||
+ | public void setYyy(int yyy) { | ||
+ | this.yyy = yyy; | ||
+ | } | ||
+ | </ |