- build.gradle: bootRun에 sourceResources, dev 프로파일 적용 - application-dev.yml: DB 접속 정보를 로컬 Docker Oracle로 변경 - logback-spring.xml: dev 프로파일에 CONSOLE appender 추가 - BOOTRUN_SETUP_GUIDE.md: Eclipse Terminal 기반 bootRun 실행 가이드 추가
4.0 KiB
eapim-portal 로컬 개발 환경 실행 가이드
Eclipse Terminal에서
gradlew bootRun으로 기동하는 방법
환경 구성 개요
| 항목 | 내용 |
|---|---|
| DB | 로컬 Docker Oracle 19c |
| 포트 | 8080 |
| 프로파일 | dev |
| 실행 방법 | Eclipse Terminal → gradlew.bat bootRun |
1. 사전 준비: 로그 디렉토리 생성
최초 1회만 실행 (없으면 기동 실패)
mkdir C:\Log\eapim\portal
mkdir C:\Log\App\eapim
2. Docker Oracle 기동
cd D:\eActive\workspaces\elink-djbank\docker\ekjb
docker-compose up -d
Oracle 완전 기동 확인 (처음 기동 시 3~5분 소요):
docker logs -f oracle
DATABASE IS READY TO USE! 메시지 확인 후 다음 단계 진행.
3. Eclipse Terminal에서 bootRun 실행
Eclipse Terminal 열기
Window → Show View → Terminal
→ 우측 상단 + 클릭 → Local Terminal 선택
실행 명령어
cd D:\eActive\workspaces\elink-djbank\eapim-portal
gradlew.bat bootRun
기동 성공 확인
##### PortalApplication Ready #####
브라우저에서 http://localhost:8080 접속 확인.
4. 수정된 파일 목록
4-1. src/main/resources/application-dev.yml
DB 호스트를 원격 서버에서 로컬 Docker로 변경:
ems:
datasource:
jdbc-url: jdbc:oracle:thin:@//localhost:1599/DAPM # 변경
username: EMSAPP
password: elink1234
gateway:
datasource:
jdbc-url: jdbc:oracle:thin:@//localhost:1599/DAPM # 변경
username: AGWAPP
password: elink1234
4-2. build.gradle
bootRun 태스크에 sourceResources 추가:
bootRun {
sourceResources sourceSets.main // processResources 필터 우회 (dev yml 직접 참조)
args = ["--spring.profiles.active=dev"]
}
이유:
processResources가application-dev.yml을 빌드 출력에서 제외하도록 설정되어 있어,sourceResources sourceSets.main을 추가해야bootRun실행 시 소스 디렉토리를 직접 참조함.
4-3. src/main/resources/logback-spring.xml
dev 프로파일에 CONSOLE appender 추가 (콘솔 로그 출력):
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="ROLLING"/>
<appender-ref ref="CONSOLE"/> <!-- 추가 -->
</root>
</springProfile>
4-4. .classpath
MapStruct 등 Gradle annotation processor 생성 소스를 Eclipse 소스 폴더로 추가:
<classpathentry output="bin/main" kind="src"
path="build/generated/sources/annotationProcessor/java/main">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
이유: Eclipse는 Gradle annotation processing을 자동 실행하지 않으므로,
gradlew.bat compileJava실행 후 생성된 소스 경로를 Eclipse 빌드 경로에 수동 추가 필요.
5. Annotation Processor 소스 재생성
소스 구조 변경(매퍼 추가 등) 시 재실행 필요:
cd D:\eActive\workspaces\elink-djbank\eapim-portal
gradlew.bat compileJava
이후 Eclipse에서 Project → Clean 실행.
6. Eclipse에서 직접 기동이 안 되는 이유
Eclipse는 참조 프로젝트(elink-online-core-jpa)의 test scope 의존성을 구분하지 않고
런타임 클래스패스에 모두 포함시킵니다.
이로 인해 Spring Boot 버전 충돌 발생:
| 출처 | jar | 충돌 대상 |
|---|---|---|
elink-online-core-jpa (test) |
spring-boot-autoconfigure:2.6.15 |
eapim-portal 2.7.18 |
elink-online-core-jpa (test) |
spring-core:5.3.27 |
eapim-portal 5.3.31 |
→ gradlew bootRun은 Gradle의 dependency management(BOM)로 버전을 통일하므로 이 문제가 없음.
7. Docker Oracle 계정 정보
| 항목 | 값 |
|---|---|
| Host | localhost |
| Port | 1599 |
| SID | DAPM |
| EMS 계정 | EMSAPP / elink1234 |
| GW 계정 | AGWAPP / elink1234 |