[Project] 2차 프로젝트 - error: package does not exist

김호정's avatar
Oct 25, 2024
[Project] 2차 프로젝트 - error: package does not exist
 
notion image
 
💡
C:\metacoding\springwork\bookbox-api\src\main\java\green\mtcoding\bookbox\book\Book.java:4: error: package green.mtcoding.bookbox.comment does not exist import green.mtcoding.bookbox.comment.Comment; ^
 
import 경로 맞게 되어있는데 서버 실행 시 does not exist 에러가 발생하면
 
notion image
 
세팅 → annotation processors → enable annotation processing 체크하고
 
💡
Enable annotation processing 옵션을 활성화하는 이유 : IntelliJ에서 Enable annotation processing 옵션을 활성화하면, 애노테이션 프로세싱을 사용하도록 설정하게 됩니다. 애노테이션 프로세싱이란 컴파일 시점에 애노테이션을 기반으로 추가 코드를 생성하거나, 기존 코드를 수정하는 기능을 제공하는 과정입니다. 이 옵션을 체크하면 주로 다음과 같은 변화가 있습니다:

1. Lombok과 같은 라이브러리에서 자동 코드 생성 활성화

  • Lombok과 같은 라이브러리를 사용할 때, @Getter, @Setter, @Builder, @AllArgsConstructor 등의 애노테이션을 붙이면, 해당 애노테이션을 처리해서 자동으로 필요한 메서드나 생성자를 생성합니다.
  • 애노테이션 프로세싱이 활성화되지 않으면 이러한 코드를 컴파일 시점에 생성하지 않으므로, 코드를 제대로 작성했더라도 컴파일 오류가 발생할 수 있습니다.

2. 컴파일 시 애노테이션 기반 코드 생성 활성화

  • Hibernate Validator, MapStruct, QueryDSL, Dagger와 같은 라이브러리에서도 애노테이션을 사용해 컴파일 시 자동으로 코드를 생성합니다.
  • 예를 들어, MapStruct를 사용하여 매핑 메서드를 자동 생성하려면 애노테이션 프로세싱이 필요합니다.

3. 왜 이걸 체크해야 하는가?

  • 많은 라이브러리들이 애노테이션을 활용하여 추가적인 코드를 자동 생성합니다. 이러한 라이브러리들이 제대로 동작하려면 애노테이션 프로세서가 활성화되어 있어야 합니다.
  • 기본적으로는 애노테이션 프로세서를 활성화하지 않아도 괜찮은 경우도 있지만, 특정 라이브러리를 사용할 때는 반드시 필요합니다. Lombok과 같은 라이브러리가 대표적인 예입니다. 이를 활성화하지 않으면 package does not exist 같은 오류가 발생할 수 있습니다.

결론:

  • *Enable annotation processing*을 체크하면 컴파일 시 애노테이션 기반으로 추가적인 코드를 자동으로 생성할 수 있게 됩니다. 만약 Lombok이나 다른 애노테이션을 사용하는 라이브러리를 사용하고 있다면, 이를 반드시 활성화해야 코드 생성 및 빌드가 정상적으로 진행됩니다.
 
notion image
 
gradle → 위 2개 intelliJ IDEA 로 설정해주기
+ 추가로 아래 Gradle JVM 제대로 설정되어있는지 확인하기
 
 
그리고 실행하면 돌아간다.
 
 
Share article

keepgoing