Android Lombok

Published: by

최근, 기억력 향상 관련 앱 1차 버전을 만들면서 Lombok 라이브러리를 사용했다. Lombok 은 Java를 사용하면서 지루하고 불편했던 Setter/Getter를 어노테이션으로 대체한다. Setter/Getter를 사용하지 않는 것은 일부 기능이며, Lombok다른 유용한 기능들을 포함한다.

Lombok을 사용하려면 Module수준의 build.gradle에 라이브러리를 추가하고, 안드로이드 스튜디오에 플러그인을 설치해야 한다.

build.gradle(Module)

오류가 발생할 때마다 아래에 주석처리된 종속성을 추가해보자!

dependencies {
    compile "org.projectlombok:lombok:1.16.18"
  	//annotationProcessor "org.projectlombok:lombok:1.16.18"
 	//provided 'javax.annotation:jsr250-api:1.0'
}

안드로이드 스튜디오 플러그인 설치(Preferences)

Annotation Processing 확인(Default Preferences)

사용 예

@Data
public class KeyPoint {
  	private String subject;
  	private String content;
}
KeyPoint keyPoint = new KeyPoint();
String subject = keyPoint.getSubject();
String content = kyePoint.getContent();

문제 해결

빌드에러 1

cannot find symbol class Generated 또는 package javax.annotation does not exist

빌드에러 1 해결(모듈 수준 build.gradle)

dependencies {
 provided 'javax.annotation:jsr250-api:1.0'
}

빌드에러 2

cannot find symbol class ConstructorProperties

빌드에러 2 해결

lombok.config 파일을 프로젝트 루트(Root)에 생성 후, 아래와 같이 설정

lombok.anyConstructor.suppressConstructorProperties = true

기타

Configuration system 참고