Files
eapim-admin/CODE-GENERATION.md
2026-03-12 10:13:50 +09:00

1.9 KiB

코드 생성 가이드 (QueryDSL Q-class / MapStruct)

개요

Eclipse APT(Annotation Processing Tool)를 비활성화하고, Gradle이 코드 생성을 전담하도록 설정되어 있습니다.

  • Q-class (QueryDSL), MapStruct 구현체 모두 Gradle compileJava 태스크로 생성됩니다.
  • 생성된 파일 위치: build/generated/java/
  • Eclipse는 build/generated/java를 소스 폴더로만 참조합니다 (직접 생성하지 않음).

코드 재생성이 필요한 경우

상황 설명
JPA 엔티티 추가 또는 수정 Q-class 재생성 필요
MapStruct Mapper 인터페이스 추가 또는 수정 구현체 재생성 필요
gradlew clean 실행 후 build/ 디렉토리가 삭제되므로 재생성 필요
프로젝트 최초 설정 시 생성된 파일이 없으므로 반드시 실행 필요

코드 생성 명령어

# eapim-admin 디렉토리에서 실행
cd D:\eActive\workspaces\elink-djbank\eapim-admin

# Q-class 및 MapStruct 구현체 생성
gradlew.bat compileJava

# 전체 클린 후 재생성
gradlew.bat clean compileJava

Eclipse 작업 흐름

  1. Java 소스 수정 (엔티티, Mapper 인터페이스 등)
  2. gradlew.bat compileJava 실행
  3. Eclipse에서 프로젝트 선택 후 Refresh (F5)
  4. Eclipse가 build/generated/java의 새 파일을 인식하여 에러 해소

배경 (왜 Gradle로만 생성하는가)

Eclipse APT와 Gradle APT가 동일한 파일을 각자 생성하려 할 때 FilerException: Source file already created 오류가 발생합니다.

이를 해결하기 위해 다음과 같이 설정을 변경했습니다:

  • .settings/org.eclipse.jdt.apt.core.prefs: aptEnabled=false
  • .classpath: .apt_generated 소스 폴더 제거, build/generated/java 유지
  • .factorypath: 삭제 (APT 프로세서 등록 해제)