# 코드 생성 가이드 (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/` 디렉토리가 삭제되므로 재생성 필요 | | 프로젝트 최초 설정 시 | 생성된 파일이 없으므로 반드시 실행 필요 | --- ## 코드 생성 명령어 ```bash # 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 프로세서 등록 해제)