인프런 커뮤니티 질문&답변

Kim DongKyun님의 프로필 이미지
Kim DongKyun

작성한 질문수

이펙티브 자바 완벽 공략 1부

프로젝트 설정 관련 질문

작성

·

484

0

안녕하세요! '소스 코드' 강의에서 알려주신 대로 상호 의존하는 부분을 주석 처리하고 mvn install 하는 도중 오류가 있어 질문 드립니다.

 

java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

 

라는 오류가 발생하여

 

  1. JDK 설정을 11 로 바꾸어 주었습니다.

  2. lombok 관련 문제인 것으로 되어서, 버전을 1.18.30 으로 바꾸어 주었습니다. 그러나 이 경우에는 컴파일 에러 (AppConfig 등 Chinese Hello Service 를 참조하는 클래스들에서) 가 발생합니다.

현재 상황은 위와 같습니다. 해결할 방법이 없을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

JDK 버전 변경 및 Lombok 버전 조정에도 불구하고 발생하는 이 오류는 Maven 프로젝트의 구성이나 의존성 문제일 수 있습니다. 현재 제공하신 정보에 따르면, JDK 버전을 11로 변경하셨고, Lombok의 버전도 업데이트하셨네요. 그러나 마주한 오류는 종속성 문제 또는 JDK 호환성 문제로 보입니다. Spring Boot 프로젝트 설정과 관련해 몇 가지 제안을 드리겠습니다.

  1. JDK 버전 확인: Spring Boot 3.1.5는 Java 17을 요구합니다. JDK 설정을 다시 Java 17로 설정해 보세요. 혹은 프로젝트가 호환되는 가장 최신의 Java 버전으로 업데이트해 보세요. Spring Boot 3.1.5는 Java 21까지 호환됩니다.
$ java -version
openjdk version "17.0.4.1" 2022-08-12 LTS
  1. Spring Boot와 Lombok 호환성: Spring Boot 3.1.5와 함께 사용하는 Lombok의 최신 버전을 확인하시기 바랍니다. 때때로 Lombok 버전이 Spring Boot 버전과 완벽하게 호환되지 않을 수 있습니다.

  2. Maven 의존성 확인: Maven POM 파일에서 의존성을 올바르게 설정했는지 확인하세요. Maven 의존성 충돌이 없는지, 필요하지 않은 의존성이 주석 처리되어 있는지 점검하세요.

  3. IDE와 Maven의 호환성: 사용하시는 IDE가 Maven과 잘 호환되는지 확인하세요. Maven 설정이나 버전이 IDE에서 정확하게 인식되고 있는지 확인해 보세요.

  4. Clean & Install: Maven 프로젝트를 완전히 clean한 후에 다시 install해 보시기 바랍니다. 때로는 이전에 build된 정보가 간섭하여 오류가 발생할 수 있습니다.

mvn clean install

또한, 오류가 발생하는 구체적인 코드 부분을 점검해 볼 필요가 있습니다. 코드 내에서 Lombok이나 다른 라이브러리의 사용 방식에 오류가 없는지 확인해 보세요.

위의 조언을 참고하여 다시 시도해 보시길 바랍니다. 만약 문제가 계속된다면, 해당 IDE의 설정을 점검하거나, 필요하다면 Maven 대신 다른 빌드 도구(예: Gradle)를 사용하는 것도 고려해 볼 수 있겠습니다.

Kim DongKyun님의 프로필 이미지
Kim DongKyun

작성한 질문수

질문하기