@echo off setlocal enabledelayedexpansion echo =============================================== echo Java 애플리케이션 빌드 (윈도우용) echo =============================================== echo. REM Java 환경 확인 echo [빌드 1] Java 환경 확인... java -version >nul 2>&1 if %errorlevel% neq 0 ( echo [오류] Java가 설치되지 않았거나 PATH에 설정되지 않았습니다. echo Java 7 이상을 설치하고 PATH를 설정해주세요. exit /b 1 ) javac -version >nul 2>&1 if %errorlevel% neq 0 ( echo [오류] Java 컴파일러(javac)를 찾을 수 없습니다. echo JDK가 설치되어 있는지 확인해주세요. exit /b 1 ) echo ✓ Java 환경 확인 완료 REM 빌드 디렉토리 정리 echo [빌드 2] 이전 빌드 결과 정리... if exist "WebContent\WEB-INF\classes" ( rmdir /s /q "WebContent\WEB-INF\classes" ) echo ✓ 이전 빌드 결과 정리 완료 REM 필요한 디렉토리 생성 echo [빌드 3] 빌드 디렉토리 생성... if not exist "WebContent\WEB-INF\classes" mkdir "WebContent\WEB-INF\classes" if not exist "WebContent\WEB-INF\lib" mkdir "WebContent\WEB-INF\lib" if not exist "logs" mkdir "logs" echo ✓ 빌드 디렉토리 생성 완료 REM Servlet API JAR 확인 echo [빌드 4] 라이브러리 의존성 확인... set "SERVLET_JAR_1=WebContent\WEB-INF\lib\javax.servlet-api-4.0.1.jar" set "SERVLET_JAR_2=WebContent\WEB-INF\lib\servlet-api.jar" if not exist "%SERVLET_JAR_1%" if not exist "%SERVLET_JAR_2%" ( echo [오류] Servlet API JAR 파일을 찾을 수 없습니다. echo 다음 중 하나가 필요합니다: echo - %SERVLET_JAR_1% echo - %SERVLET_JAR_2% echo. echo Maven Central에서 다운로드하거나 Tomcat lib 폴더에서 복사해주세요. exit /b 1 ) echo ✓ 라이브러리 의존성 확인 완료 REM 클래스패스 설정 set "CLASSPATH=src;WebContent\WEB-INF\lib\*" echo [빌드 5] 클래스패스: %CLASSPATH% REM Java 소스 파일 목록 생성 echo [빌드 6] Java 소스 파일 검색... if exist java_sources.tmp del java_sources.tmp set "java_count=0" for /r src %%f in (*.java) do ( echo %%f >> java_sources.tmp set /a java_count+=1 ) if %java_count% equ 0 ( echo [경고] 컴파일할 Java 소스 파일이 없습니다. ) else ( echo ✓ %java_count%개의 Java 소스 파일을 찾았습니다. ) REM Java 컴파일 if exist java_sources.tmp ( echo [빌드 7] Java 소스 컴파일... javac -encoding UTF-8 -source 1.7 -target 1.7 -d WebContent\WEB-INF\classes -cp "%CLASSPATH%" @java_sources.tmp if !errorlevel! neq 0 ( echo [오류] Java 컴파일에 실패했습니다. if exist java_sources.tmp del java_sources.tmp exit /b 1 ) del java_sources.tmp echo ✓ Java 컴파일 완료 ) REM 리소스 파일 복사 echo [빌드 8] 리소스 파일 복사... set "resource_count=0" for /r src %%f in (*.xml *.properties *.sql) do ( set "source_file=%%f" set "relative_path=!source_file:%CD%\src\=!" set "target_file=WebContent\WEB-INF\classes\!relative_path!" REM 대상 디렉토리 생성 for %%d in ("!target_file!") do ( if not exist "%%~dpd" mkdir "%%~dpd" 2>nul ) REM 파일 복사 copy "!source_file!" "!target_file!" >nul 2>&1 if !errorlevel! equ 0 ( set /a resource_count+=1 ) else ( echo [경고] 리소스 파일 복사 실패: !source_file! ) ) echo ✓ %resource_count%개의 리소스 파일 복사 완료 REM 빌드 결과 요약 echo. echo =============================================== echo ✓ 빌드 완료! echo =============================================== echo 컴파일된 클래스: WebContent\WEB-INF\classes\ echo 라이브러리: WebContent\WEB-INF\lib\ echo 로그 디렉토리: logs\ echo. endlocal