chcp 65001 >nul @echo off setlocal enabledelayedexpansion echo ============================================ echo Snapshot 一体化部署脚本 (Windows) echo ============================================ echo. REM 获取脚本所在目录 set "ROOT_DIR=%~dp0" set "FRONTEND_DIR=%ROOT_DIR%frontend" set "BACKEND_DIR=%ROOT_DIR%backend" set "STATIC_DIR=%BACKEND_DIR%\src\main\resources\static" REM 步骤1: 构建前端 echo [1/4] 构建前端... cd /d "%FRONTEND_DIR%" call npm install if %errorlevel% neq 0 ( echo 错误: 前端依赖安装失败 exit /b 1 ) call npm run build if %errorlevel% neq 0 ( echo 错误: 前端构建失败 exit /b 1 ) echo 前端构建完成 echo. REM 步骤2: 清理旧的静态资源 echo [2/4] 清理旧的静态资源... if exist "%STATIC_DIR%" ( rd /s /q "%STATIC_DIR%" ) mkdir "%STATIC_DIR%" echo 静态资源目录已清理 echo. REM 步骤3: 复制前端构建产物到后端 echo [3/4] 复制前端文件到后端静态资源目录... xcopy "%FRONTEND_DIR%\dist\*" "%STATIC_DIR%\" /e /i /y if %errorlevel% neq 0 ( echo 错误: 文件复制失败 exit /b 1 ) echo 前端文件已复制到 %STATIC_DIR% echo. REM 步骤4: 构建后端 echo [4/4] 构建后端 JAR... cd /d "%BACKEND_DIR%" call mvn clean package -DskipTests if %errorlevel% neq 0 ( echo 错误: 后端构建失败 exit /b 1 ) echo 后端构建完成 echo. echo ============================================ echo 部署完成! echo ============================================ echo. echo JAR 文件: %BACKEND_DIR%\target\snapshot-backend-1.0.0.jar echo. echo 启动命令: echo java -jar "%BACKEND_DIR%\target\snapshot-backend-1.0.0.jar" echo. echo 或使用以下命令直接启动: echo cd /d "%BACKEND_DIR%" echo mvn spring-boot:run echo ============================================ endlocal