@echo off chcp 65001 >nul 2>&1 setlocal :: ============================================ :: 服务管理中心 - 构建 + 打包 + 运行 一键脚本 :: ============================================ set "SCRIPT_DIR=%~dp0" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%" :: 支持参数: run / build / clean / help set "ACTION=%~1" if "%ACTION%"=="" set "ACTION=run" if "%ACTION%"=="help" goto :usage if "%ACTION%"=="-h" goto :usage if "%ACTION%"=="--help" goto :usage echo. echo ============================================ echo 服务管理中心 - %ACTION% echo ============================================ echo. :: ---------- 检查环境 ---------- where java >nul 2>&1 if %errorlevel% neq 0 ( echo [ERROR] 未找到 java,请确保 Java 17+ 已安装并加入 PATH exit /b 1 ) where mvn >nul 2>&1 if %errorlevel% neq 0 ( echo [ERROR] 未找到 mvn,请确保 Maven 已安装并加入 PATH exit /b 1 ) where node >nul 2>&1 if %errorlevel% neq 0 ( echo [ERROR] 未找到 node,请确保 Node.js 18+ 已安装并加入 PATH exit /b 1 ) :: ---------- 清理 ---------- if "%ACTION%"=="clean" ( echo [1/3] 清理前端构建产物... if exist "%SCRIPT_DIR%\frontend\dist" rmdir /s /q "%SCRIPT_DIR%\frontend\dist" if exist "%SCRIPT_DIR%\backend\src\main\resources\static" rmdir /s /q "%SCRIPT_DIR%\backend\src\main\resources\static" echo [2/3] 清理后端构建产物... if exist "%SCRIPT_DIR%\backend\target" rmdir /s /q "%SCRIPT_DIR%\backend\target" echo [3/3] 清理运行时数据... if exist "%SCRIPT_DIR%\data" rmdir /s /q "%SCRIPT_DIR%\data" echo. echo [DONE] 清理完成 exit /b 0 ) :: ---------- 构建前端 ---------- echo [1/4] 安装前端依赖... cd /d "%SCRIPT_DIR%\frontend" call npm install --silent 2>nul if %errorlevel% neq 0 ( echo [ERROR] 前端依赖安装失败 exit /b 1 ) echo [2/4] 构建前端... call npx vite build if %errorlevel% neq 0 ( echo [ERROR] 前端构建失败 exit /b 1 ) echo [3/4] 复制前端产物到后端静态资源目录... if exist "%SCRIPT_DIR%\backend\src\main\resources\static" rmdir /s /q "%SCRIPT_DIR%\backend\src\main\resources\static" xcopy /e /i /q /y "%SCRIPT_DIR%\frontend\dist" "%SCRIPT_DIR%\backend\src\main\resources\static" >nul :: ---------- 打包后端 ---------- echo [4/4] 打包后端 (mvn package)... cd /d "%SCRIPT_DIR%\backend" call mvn package -DskipTests -q if %errorlevel% neq 0 ( echo [ERROR] 后端打包失败 exit /b 1 ) echo. echo [DONE] 构建打包完成! echo. :: ---------- 运行 ---------- if "%ACTION%"=="build" ( echo 提示: 使用 run.bat run 启动服务 exit /b 0 ) echo ---------------------------------------- echo 启动服务 (端口 3945) echo 访问 http://localhost:3945 echo 按 Ctrl+C 停止 echo ---------------------------------------- echo. cd /d "%SCRIPT_DIR%\backend" java -jar target\service-management-1.0.0.jar endlocal exit /b 0 :: ---------- 帮助 ---------- :usage echo. echo 用法: run.bat [命令] echo. echo 命令: echo (无参数) 构建前端 + 打包后端 + 启动服务 echo build 仅构建前端 + 打包后端(不启动) echo run 构建 + 打包 + 启动(同默认行为) echo clean 清理所有构建产物和运行时数据 echo help 显示此帮助信息 echo. exit /b 0