run.bat 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. @echo off
  2. chcp 65001 >nul 2>&1
  3. setlocal
  4. :: ============================================
  5. :: 服务管理中心 - 构建 + 打包 + 运行 一键脚本
  6. :: ============================================
  7. set "SCRIPT_DIR=%~dp0"
  8. set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
  9. :: 支持参数: run / build / clean / help
  10. set "ACTION=%~1"
  11. if "%ACTION%"=="" set "ACTION=run"
  12. if "%ACTION%"=="help" goto :usage
  13. if "%ACTION%"=="-h" goto :usage
  14. if "%ACTION%"=="--help" goto :usage
  15. echo.
  16. echo ============================================
  17. echo 服务管理中心 - %ACTION%
  18. echo ============================================
  19. echo.
  20. :: ---------- 检查环境 ----------
  21. where java >nul 2>&1
  22. if %errorlevel% neq 0 (
  23. echo [ERROR] 未找到 java,请确保 Java 17+ 已安装并加入 PATH
  24. exit /b 1
  25. )
  26. where mvn >nul 2>&1
  27. if %errorlevel% neq 0 (
  28. echo [ERROR] 未找到 mvn,请确保 Maven 已安装并加入 PATH
  29. exit /b 1
  30. )
  31. where node >nul 2>&1
  32. if %errorlevel% neq 0 (
  33. echo [ERROR] 未找到 node,请确保 Node.js 18+ 已安装并加入 PATH
  34. exit /b 1
  35. )
  36. :: ---------- 清理 ----------
  37. if "%ACTION%"=="clean" (
  38. echo [1/3] 清理前端构建产物...
  39. if exist "%SCRIPT_DIR%\frontend\dist" rmdir /s /q "%SCRIPT_DIR%\frontend\dist"
  40. if exist "%SCRIPT_DIR%\backend\src\main\resources\static" rmdir /s /q "%SCRIPT_DIR%\backend\src\main\resources\static"
  41. echo [2/3] 清理后端构建产物...
  42. if exist "%SCRIPT_DIR%\backend\target" rmdir /s /q "%SCRIPT_DIR%\backend\target"
  43. echo [3/3] 清理运行时数据...
  44. if exist "%SCRIPT_DIR%\data" rmdir /s /q "%SCRIPT_DIR%\data"
  45. echo.
  46. echo [DONE] 清理完成
  47. exit /b 0
  48. )
  49. :: ---------- 构建前端 ----------
  50. echo [1/4] 安装前端依赖...
  51. cd /d "%SCRIPT_DIR%\frontend"
  52. call npm install --silent 2>nul
  53. if %errorlevel% neq 0 (
  54. echo [ERROR] 前端依赖安装失败
  55. exit /b 1
  56. )
  57. echo [2/4] 构建前端...
  58. call npx vite build
  59. if %errorlevel% neq 0 (
  60. echo [ERROR] 前端构建失败
  61. exit /b 1
  62. )
  63. echo [3/4] 复制前端产物到后端静态资源目录...
  64. if exist "%SCRIPT_DIR%\backend\src\main\resources\static" rmdir /s /q "%SCRIPT_DIR%\backend\src\main\resources\static"
  65. xcopy /e /i /q /y "%SCRIPT_DIR%\frontend\dist" "%SCRIPT_DIR%\backend\src\main\resources\static" >nul
  66. :: ---------- 打包后端 ----------
  67. echo [4/4] 打包后端 (mvn package)...
  68. cd /d "%SCRIPT_DIR%\backend"
  69. call mvn package -DskipTests -q
  70. if %errorlevel% neq 0 (
  71. echo [ERROR] 后端打包失败
  72. exit /b 1
  73. )
  74. echo.
  75. echo [DONE] 构建打包完成!
  76. echo.
  77. :: ---------- 运行 ----------
  78. if "%ACTION%"=="build" (
  79. echo 提示: 使用 run.bat run 启动服务
  80. exit /b 0
  81. )
  82. echo ----------------------------------------
  83. echo 启动服务 (端口 3945)
  84. echo 访问 http://localhost:3945
  85. echo 按 Ctrl+C 停止
  86. echo ----------------------------------------
  87. echo.
  88. cd /d "%SCRIPT_DIR%\backend"
  89. java -jar target\service-management-1.0.0.jar
  90. endlocal
  91. exit /b 0
  92. :: ---------- 帮助 ----------
  93. :usage
  94. echo.
  95. echo 用法: run.bat [命令]
  96. echo.
  97. echo 命令:
  98. echo (无参数) 构建前端 + 打包后端 + 启动服务
  99. echo build 仅构建前端 + 打包后端(不启动)
  100. echo run 构建 + 打包 + 启动(同默认行为)
  101. echo clean 清理所有构建产物和运行时数据
  102. echo help 显示此帮助信息
  103. echo.
  104. exit /b 0