내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
java:lombok:field_exist_verify
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Lombok Field 지정이 올바른지 검사 ====== <note warning> 최신 Lombok 은 annotation 으로 include/execlude 를 지정할 수 있으므로 더이살 아래 내용은 필요가 없다. </note> ''@EqualsAndHashCode(of = {})'' 혹은 ''@ToString(of = {})'' 등에서 대상 필드를 명시적으로 지정할 때 문자열로 지정하기 때문에 오타를 내거나 리팩토링시에 변경 사항이 올바로 반영 안되는 상태가 될 수 있다. 이 때 Lombok은 컴파일시 컴파일러 Warning을 내주긴 하지만, 이를 못보고 지나칠 수 있다. 이를 확실히 하려면 Build 시점에 그런 상황이 있을 때 일부러 에러를 내줘야 한다. [[ci:jenkins|Jenkins]] 로 빌드할 때 [[https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin|Log Parser Plugin]]으로 같은 효과를 낼 수 있다. ===== rule 파일 생성 ===== 프로젝트에 ''lombok_field_check.rule'' 이라는 파일을 아래 내용으로 만들고서 <code> # 필드명 잘못 기입했을 때 error /warning: This field does not exist/ # callSuper 안했을 때 error /warning: Generating equals\/hashCode implementation but without a call to superclass/ </code> Lombok이 포함된 Java 프로젝트를 빌드하는 Jenkins Job에 log parser plugin을 설정하면서 해당 rule을 지정해 준다. ===== 빌드 후 조치로 Log Parser Plugin 추가 ===== Build Job에서 빌드 후 조치로 Log Parser Plugin을 추가한다. 이 때 Error, Warning에 대해서 빌드를 실패하게 설정한다. {{:java:lombok:log_parser_plugin_config.png|}} ===== 오류가 있는 소스로 빌드를 해보면 ===== <code java> @EqualsAndHashCode(of = { "ie" }) // ie는 id의 오타 @ToString(of = { "firstName", "lastName", "birthdate" }) // birthdate는 birthday의 오타 public class User { private Long id; private String firstName; private String lastName; private LocalDateTime birthday; } </code> 빌드가 실패하고, **Parsed Console Output** 항목을 살펴보면 어디서 어떻게 실패했는지를 확인할 수 있다. {{:java:lombok:parsed_console_output_final.png|}} ===== 주의 ===== Job을 Slave에서 실행할 경우 stderr 로 출력되는 컴파일 오류가 log로 남지 않는 현상이 발생했음.
java/lombok/field_exist_verify.txt
· 마지막으로 수정됨: 2021/01/18 19:56 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로