install 스크립트 개선: JDK 21 자동 설치, 경로 문제 수정, 문서 업데이트
- install.bat/install.sh: JDK 미설치 시 자동 설치 (winget/brew/apt/yum) - install.bat: ERRORLEVEL 지연 확장 통일, gradlew 경로 수정, CRLF/이스케이프 수정 - install.sh: set -euo pipefail 제거, PROJECT_ROOT 기준 경로로 변경 - Lombok @Builder.Default 경고 3건 수정 (WbxUserRole, WbxAuditLog, RolePermission) - 개발자가이드/설치가이드 PDF: JDK 자동 설치 기능 반영 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이 Commit은 다음에 포함되어 있습니다:
@@ -7,6 +7,13 @@ setlocal EnableDelayedExpansion
|
||||
:: 사용법: scripts\install.bat
|
||||
:: ============================================================
|
||||
|
||||
:: ---------- 프로젝트 루트 설정 ----------
|
||||
set "PROJECT_ROOT=%~dp0.."
|
||||
pushd "!PROJECT_ROOT!" || (
|
||||
echo [FAIL] 프로젝트 루트를 찾을 수 없습니다: %~dp0..
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo WBX Spring Core — 설치 점검
|
||||
@@ -17,27 +24,55 @@ set ERRORS=0
|
||||
|
||||
:: ---------- 1. JDK 21 ----------
|
||||
echo 1. JDK 확인
|
||||
set "JDK_OK=0"
|
||||
where java >nul 2>&1
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
for /f "tokens=3" %%v in ('java -version 2^>^&1 ^| findstr /i "version"') do (
|
||||
set "JAVA_FULL=%%~v"
|
||||
)
|
||||
for /f "tokens=1 delims=." %%m in ("!JAVA_FULL!") do set "JAVA_MAJOR=%%m"
|
||||
if !JAVA_MAJOR! GEQ 21 (
|
||||
echo [OK] JDK !JAVA_FULL!
|
||||
set "JDK_OK=1"
|
||||
) else (
|
||||
echo [FAIL] JDK !JAVA_FULL! — 21 이상 필요
|
||||
set /a ERRORS+=1
|
||||
echo [INFO] JDK !JAVA_FULL! — 21 이상 필요, 자동 설치 시도...
|
||||
)
|
||||
) else (
|
||||
echo [FAIL] java 명령어 없음 — JDK 21 설치 필요
|
||||
set /a ERRORS+=1
|
||||
echo [INFO] java 명령어 없음 — 자동 설치 시도...
|
||||
)
|
||||
|
||||
if !JDK_OK! equ 0 (
|
||||
where winget >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [INFO] winget으로 Eclipse Temurin JDK 21 설치 중...
|
||||
winget install --id EclipseAdoptium.Temurin.21.JDK --accept-source-agreements --accept-package-agreements --silent
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
:: 설치된 JDK를 PATH에 추가
|
||||
for /d %%j in ("C:\Program Files\Eclipse Adoptium\jdk-21*") do (
|
||||
set "JAVA_HOME=%%j"
|
||||
)
|
||||
if defined JAVA_HOME (
|
||||
set "PATH=!JAVA_HOME!\bin;!PATH!"
|
||||
echo [OK] JDK 21 설치 완료 — !JAVA_HOME!
|
||||
echo [INFO] 시스템 PATH 반영을 위해 설치 후 새 터미널을 여세요.
|
||||
) else (
|
||||
echo [FAIL] JDK 설치 경로를 찾을 수 없습니다
|
||||
set /a ERRORS+=1
|
||||
)
|
||||
) else (
|
||||
echo [FAIL] JDK 설치 실패 — 수동으로 JDK 21을 설치하세요
|
||||
set /a ERRORS+=1
|
||||
)
|
||||
) else (
|
||||
echo [FAIL] winget 없음 — https://adoptium.net 에서 JDK 21을 수동 설치하세요
|
||||
set /a ERRORS+=1
|
||||
)
|
||||
)
|
||||
|
||||
:: ---------- 2. Git ----------
|
||||
echo 2. Git 확인
|
||||
where git >nul 2>&1
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
for /f "delims=" %%g in ('git --version') do echo [OK] %%g
|
||||
) else (
|
||||
echo [FAIL] git 없음
|
||||
@@ -47,7 +82,7 @@ if %ERRORLEVEL% equ 0 (
|
||||
:: ---------- 3. Docker (선택) ----------
|
||||
echo 3. Docker 확인 (선택)
|
||||
where docker >nul 2>&1
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
for /f "delims=" %%d in ('docker --version') do echo [OK] %%d
|
||||
) else (
|
||||
echo [WARN] Docker 미설치 — DB/Redis를 직접 설치해야 합니다
|
||||
@@ -58,7 +93,7 @@ echo 4. Gradle 빌드
|
||||
if !ERRORS! GTR 0 (
|
||||
echo [FAIL] 사전 요구사항 미충족 — 빌드 건너뜀
|
||||
) else (
|
||||
call gradlew.bat build -x test --console=plain -q
|
||||
call "!PROJECT_ROOT!\gradlew.bat" build -x test --console=plain -q
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [OK] BUILD SUCCESSFUL
|
||||
) else (
|
||||
@@ -69,7 +104,7 @@ if !ERRORS! GTR 0 (
|
||||
|
||||
:: ---------- 5. .env 템플릿 ----------
|
||||
echo 5. 환경변수 파일
|
||||
if not exist .env (
|
||||
if not exist "!PROJECT_ROOT!\.env" (
|
||||
(
|
||||
echo # ===== WBX Spring Core — 환경변수 =====
|
||||
echo # 이 파일을 환경에 맞게 수정하세요.
|
||||
@@ -80,7 +115,7 @@ if not exist .env (
|
||||
echo # --- 서버 ---
|
||||
echo SERVER_CONTEXT_PATH=/
|
||||
echo.
|
||||
echo # --- JWT ^(필수 변경!^) ---
|
||||
echo # --- JWT ^(필수 변경^^^!^) ---
|
||||
echo JWT_SECRET=your-production-secret-key-minimum-256-bits-long
|
||||
echo.
|
||||
echo # --- DB ---
|
||||
@@ -119,7 +154,7 @@ if not exist .env (
|
||||
echo # AWS_S3_BUCKET=
|
||||
echo # AWS_ACCESS_KEY=
|
||||
echo # AWS_SECRET_KEY=
|
||||
) > .env
|
||||
) > "!PROJECT_ROOT!\.env"
|
||||
echo [OK] .env 생성 완료 (값을 수정하세요)
|
||||
) else (
|
||||
echo [WARN] .env 이미 존재 — 건너뜀
|
||||
@@ -127,9 +162,9 @@ if not exist .env (
|
||||
|
||||
:: ---------- 6. 디렉토리 ----------
|
||||
echo 6. 디렉토리 생성
|
||||
if not exist logs mkdir logs
|
||||
if not exist uploads mkdir uploads
|
||||
if not exist backup mkdir backup
|
||||
if not exist "!PROJECT_ROOT!\logs" mkdir "!PROJECT_ROOT!\logs"
|
||||
if not exist "!PROJECT_ROOT!\uploads" mkdir "!PROJECT_ROOT!\uploads"
|
||||
if not exist "!PROJECT_ROOT!\backup" mkdir "!PROJECT_ROOT!\backup"
|
||||
echo [OK] logs\ uploads\ backup\
|
||||
|
||||
:: ---------- 결과 ----------
|
||||
@@ -140,7 +175,7 @@ if !ERRORS! equ 0 (
|
||||
echo.
|
||||
echo 다음 단계:
|
||||
echo 1. .env 파일을 환경에 맞게 수정
|
||||
echo 2. DB 생성 (또는 docker compose -f docker-compose-dev.yml up -d)
|
||||
echo 2. DB 생성 ^(또는 docker compose -f docker-compose-dev.yml up -d^)
|
||||
echo 3. gradlew.bat bootRun
|
||||
echo 4. http://localhost:8080/health 확인
|
||||
) else (
|
||||
@@ -149,4 +184,5 @@ if !ERRORS! equ 0 (
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
popd
|
||||
endlocal
|
||||
|
||||
새 Issue에서 참조
사용자 차단