성장과정(dev)/Spring + Java + JPA

스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 읽으며 lombok, intelliJ, gradle build 시작

lowellSunny 2020. 5. 15. 14:24

이직 후 개발환경이 너무 달라져서 요책을 읽고있다. 처음부터 차근차근 정리해가면서 예제 따라할 수 있도록 정리가 잘되어있다. 

 

개발을 2년 넘도록 했는데 intelliJ도 안써봤고, lombok 하나를 몰랐다니..

eclipse에서는 설치하는데 좀 복잡하지만 intelliJ에서는 아주 쉽게 사용할 수 있다.. 해서 있는대로 따라해보았다.

lombok 설치도 하고 "Lombok Required Annotation Processing" 이라는 문구가 떠서

 

파란줄 그은 곳에 체크까지 해야 lombok을 사용할 수 있다기에

체크도 했는데 그 다음 예제( lombok 사용하기 예제 )를 만들어 run 하니 정상실행이 안되는것이다.

참고로 예제에서는 dto를 생성하는데 final로 변수들을 정의한다.

lombok에서 제공하는 @RequiredArgsConstructor 어노테이션은 모든 final 필드가 포함된 생성자를 생성해주는 역할이라고 한다.

즉, 이 annotation을 적용했는데 final변수를 정의할 때 저런 문제( failure build )가 발생하는 것은 lombok 적용이 제대로 되지 않았다는 것.

 

이런 컴파일 에러가 뜬다.

 

 

Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

....

 

뭐가문제니. 한참 찾다가 예제와 비교해 오타는 없기에 결국은 구글링을 시작했다.

결국 오늘도 별거 아닌걸로 삽질하다가 찾아낸 방법은

build.gradle에 dependencies에 annotationProcessor 'org.projectlombok:lombok' 추가...

 

 

너하나만 추가하니까 모든것이 잘되는구나?

 

누군가가 이런것을 써놓았다. 그렇구만..

 

annotationProcessor

- 컴파일 시점으로 코드를 생성함.

-이것을 설정안하면 롬북을 포함해서 프로젝트를 export할 때 롬북에서의 제공되는 에노테이션이 전부 포함되지 않음

 

from https://cchoimin.tistory.com/entry/Gradle-annotationProcessor

 

Gradle annotationProcessor

annotationProcessor - 컴파일 시점으로 코드를 생성함. -이것을 설정안하면 롬북을 포함해서 프로젝트를 export할 때 롬북에서의 제공되는 에노테이션이 전부 포함되지 않음 dependencies { implementation 'org.

cchoimin.tistory.com

 

 

오늘 삽질 끝? 시작? ^_^