코딩항해기

[Error/Lombok] eclipse에서 Lombok 정상구동 하지 않을 때 본문

Error solution

[Error/Lombok] eclipse에서 Lombok 정상구동 하지 않을 때

miniBcake 2024. 10. 22. 21:56

 
 
인텔리제이를 사용하고 있어서 롬복 사용에 불편함을 느끼지 못하고 logback 등등 편하게 사용하고 있었는데 코드를 공유하면서 보니 이클립스에서 logback 오류가 발생하는 것을 알게 됐다.
 
 

1. 의존주입

관련해서 찾아보니 이클립스는 롬복을 사용하기 위해서 의존주입을 해야한다는 것을 알게 됐고, 롬복 사용, logback 사용을 위한 모든 의존을 주입했다.
 
*버전 오류가 날 경우 3번 참고 : version 태그 삭제

		<!--logback lombok 필요-->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.32</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.4.12</version>
		</dependency>
		<!---->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>

 
 
의존을 주입하고나니 롬복에 대한 어노테이션을 import할 수 있었다. 그런데 import해도 logback을 사용할 수 없었다.
 

 
검색을 더 해보니 이클립스에서는 롬복을 제대로 사용하기 위해서 플러그인을 설치해야한다고 한다.
어노테이션 import가 되긴 하지만 기능은 작동하지 않는 상태라고 한다.
 

2. 이클립스 롬복 설치

Download

projectlombok.org

 
먼저 해당 주소에 들어가 lombok.jar를 다운로드한다.
 
다운로드 받은 파일을 실행하면 IDE를 선택하라고 하는데, 설치형이면 자동으로 잡히는 것 같기도하다. 비설치형 이클립스를 쓰고 있어서 직접 eclipse.exe를 찾아 지정했다.
 

 
찾은 뒤에는 Install/Update를 진행한다.

 
install에 성공하면 Quit Installer를 통해 종료한다.

 
 
이후 이클립스를 껐다가 다시 킨 다음 제대로 인지할 수 있도록 잠시 대기하거나 저장을 진행하면 드디어 빨간 밑줄이 사라졌다.
 

3. 버전 오류 해결

그런데 실행해보니 버전이 안 맞는다고 오류를 일으킨다...... 이클립스 반성해
 

Exception in thread "main" java.lang.AbstractMethodError: Receiver class org.springframework.boot.logging.logback.RootLogLevelConfigurator does not define or inherit an implementation of the resolved method 'abstract void configure(ch.qos.logback.classic.LoggerContext)' of interface ch.qos.logback.classic.spi.Configurator. at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:140) at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84) ...

 
이런 오류가 발생했을 때는 springboot의 버전 제공 기능을 이용하거나 수동으로 맞춰주면 된다.

		<!--logback lombok 필요-->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<!---->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>

 
 
이제 정말로 다시 실행해보면 정상작동한다.
 

 
 

참고

기타 다른 문제는 일어나지 않았지만 일어난다면 해당 글을 참고하면 좋을 것 같다.

[이클립스, Eclipse] lombok(롬복) 설치

Eclipse lombok(롬복) 설치 이클립스에서 lombok 어노테이션인 @Getter와 @Setter를 사용하려고 하니 제대로 동작하지 않았다. build.gradle에 dependency로 추가해줬음에도 불구하고 적용이 되지 않아 확인해보

computer-science-student.tistory.com