@echo off chcp 65001 >nul echo ============================================ echo Snapshot 后端部署脚本 echo ============================================ echo. REM 检查Java环境 echo [1/6] 检查Java环境... java -version >nul 2>&1 if %errorlevel% neq 0 ( echo [ERROR] 未检测到Java环境,请安装Java 17或更高版本 pause exit /b 1 ) echo [OK] Java环境检查通过 echo. REM 检查Maven环境 echo [2/6] 检查Maven环境... call mvn -version >nul 2>&1 if %errorlevel% neq 0 ( echo [ERROR] 未检测到Maven环境,请安装Maven pause exit /b 1 ) echo [OK] Maven环境检查通过 echo. REM 初始化数据库(仅在使用 MySQL 时需要) echo [3/6] 数据库初始化... echo 注意:默认使用 SQLite,无需初始化数据库。 echo 如需使用 MySQL,请先修改 application-mysql.properties 中的连接信息, echo 然后运行 init-db.bat 进行数据库初始化。 echo. set /p confirm="是否跳过数据库初始化?(Y/n): " if /i not "%confirm%"=="n" ( echo 跳过数据库初始化 ) else ( echo 请使用 init-db.bat 进行数据库初始化 pause exit /b 0 ) echo. REM 清理之前的构建 echo [4/6] 清理之前的构建... call mvn clean if %errorlevel% neq 0 ( echo [ERROR] 清理失败 pause exit /b 1 ) echo [OK] 清理完成 echo. REM 编译打包 echo [5/6] 编译打包项目... call mvn clean package -DskipTests if %errorlevel% neq 0 ( echo [ERROR] 编译打包失败 pause exit /b 1 ) echo [OK] 编译打包完成 echo. REM 启动应用 echo [6/6] 启动应用... echo 正在启动Spring Boot应用... echo. REM 检测是否已经有进程在运行 tasklist /FI "IMAGENAME eq java.exe" 2>NUL | find /I /N "java.exe">NUL if "%ERRORLEVEL%"=="0" ( echo [WARN] 检测到Java进程正在运行 set /p kill="是否停止现有进程?(y/N): " if /i "!kill!"=="y" ( taskkill /F /IM java.exe timeout /t 2 /nobreak >nul ) ) REM 启动应用 echo 启动命令:java -jar target\snapshot-backend-1.0.0.jar echo. start /B java -jar "target\snapshot-backend-1.0.0.jar" REM 等待应用启动 echo 等待应用启动... timeout /t 10 /nobreak >nul REM 检查应用是否启动成功 echo. echo ============================================ echo [OK] 部署完成! echo ============================================ echo. echo 应用访问地址: http://localhost:7626 echo. echo 按任意键关闭此窗口... pause >nul