You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.3 KiB
151 lines
4.3 KiB
@echo off
|
|
chcp 65001 >nul
|
|
setlocal EnableDelayedExpansion
|
|
|
|
:: ============================================
|
|
:: MCSLMS Web 应用本地 Tomcat 部署脚本
|
|
:: ============================================
|
|
::
|
|
:: 使用方法:
|
|
:: 1. 先构建项目: gradlew :backend:bootWar
|
|
:: 2. 运行本脚本: scripts\deploy-tomcat.bat
|
|
::
|
|
:: 配置:
|
|
:: 修改下方的 TOMCAT_HOME 变量为你的 Tomcat 安装路径
|
|
::
|
|
|
|
:: ========== 配置区域 ==========
|
|
set "TOMCAT_HOME=E:\2025-2026\GitAIOps\tomcat"
|
|
set "APP_NAME=mcslms"
|
|
set "PROJECT_ROOT=%~dp0.."
|
|
|
|
:: ========== 变量定义 ==========
|
|
set "TOMCAT_WEBAPPS=%TOMCAT_HOME%\webapps"
|
|
set "TOMCAT_BIN=%TOMCAT_HOME%\bin"
|
|
set "WAR_SOURCE=%PROJECT_ROOT%\backend\build\libs"
|
|
|
|
echo.
|
|
echo ============================================
|
|
echo MCSLMS Web 应用部署到 Tomcat
|
|
echo ============================================
|
|
echo.
|
|
echo 配置信息:
|
|
echo - Tomcat 路径: %TOMCAT_HOME%
|
|
echo - 应用名称: %APP_NAME%
|
|
echo - 项目根目录: %PROJECT_ROOT%
|
|
echo.
|
|
|
|
:: ========== 检查 Tomcat ==========
|
|
echo [1/7] 检查 Tomcat 安装...
|
|
if not exist "%TOMCAT_HOME%" (
|
|
echo ✗ 错误: Tomcat 目录不存在: %TOMCAT_HOME%
|
|
echo 请修改脚本中的 TOMCAT_HOME 变量
|
|
goto :error
|
|
)
|
|
if not exist "%TOMCAT_BIN%\catalina.bat" (
|
|
echo ✗ 错误: 找不到 catalina.bat
|
|
goto :error
|
|
)
|
|
echo ✓ Tomcat 已找到
|
|
echo.
|
|
|
|
:: ========== 查找 WAR 文件 ==========
|
|
echo [2/7] 查找 WAR 文件...
|
|
set "WAR_FILE="
|
|
for %%f in ("%WAR_SOURCE%\mcslms-web-*.war") do (
|
|
set "WAR_FILE=%%f"
|
|
)
|
|
if not defined WAR_FILE (
|
|
echo ✗ 错误: 找不到 WAR 文件
|
|
echo 请先运行: gradlew :backend:bootWar
|
|
goto :error
|
|
)
|
|
echo ✓ 找到 WAR 文件: %WAR_FILE%
|
|
echo.
|
|
|
|
:: ========== 停止 Tomcat ==========
|
|
echo [3/7] 停止 Tomcat (如果正在运行)...
|
|
call "%TOMCAT_BIN%\shutdown.bat" 2>nul
|
|
timeout /t 3 /nobreak >nul
|
|
|
|
:: 检查并终止占用 8080 端口的进程
|
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080 ^| findstr LISTENING 2^>nul') do (
|
|
if not "%%a"=="0" (
|
|
echo 终止占用端口 8080 的进程 PID: %%a
|
|
taskkill /F /PID %%a 2>nul
|
|
)
|
|
)
|
|
echo ✓ Tomcat 已停止
|
|
echo.
|
|
|
|
:: ========== 清理旧应用 ==========
|
|
echo [4/7] 清理旧应用...
|
|
if exist "%TOMCAT_WEBAPPS%\%APP_NAME%.war" (
|
|
del /F /Q "%TOMCAT_WEBAPPS%\%APP_NAME%.war"
|
|
echo ✓ 删除旧 WAR 包
|
|
)
|
|
if exist "%TOMCAT_WEBAPPS%\%APP_NAME%" (
|
|
rmdir /S /Q "%TOMCAT_WEBAPPS%\%APP_NAME%"
|
|
echo ✓ 删除旧应用目录
|
|
)
|
|
echo.
|
|
|
|
:: ========== 部署新 WAR ==========
|
|
echo [5/7] 部署新 WAR 包...
|
|
copy /Y "%WAR_FILE%" "%TOMCAT_WEBAPPS%\%APP_NAME%.war" >nul
|
|
if errorlevel 1 (
|
|
echo ✗ 错误: 复制 WAR 文件失败
|
|
goto :error
|
|
)
|
|
echo ✓ WAR 包已部署
|
|
echo.
|
|
|
|
:: ========== 复制数据库 ==========
|
|
echo [6/7] 复制数据库文件...
|
|
if exist "%PROJECT_ROOT%\data\library.db" (
|
|
copy /Y "%PROJECT_ROOT%\data\library.db" "%TOMCAT_BIN%\library.db" >nul
|
|
echo ✓ 数据库已复制到 Tomcat bin 目录
|
|
) else (
|
|
echo ⚠️ 警告: 未找到 data\library.db
|
|
)
|
|
echo.
|
|
|
|
:: ========== 启动 Tomcat ==========
|
|
echo [7/7] 启动 Tomcat...
|
|
set "CATALINA_HOME=%TOMCAT_HOME%"
|
|
start "Tomcat-MCSLMS" "%TOMCAT_BIN%\catalina.bat" run
|
|
echo ✓ Tomcat 正在启动...
|
|
echo.
|
|
|
|
:: ========== 等待启动 ==========
|
|
echo 等待 Tomcat 启动 (20秒)...
|
|
timeout /t 20 /nobreak >nul
|
|
echo.
|
|
|
|
:: ========== 验证部署 ==========
|
|
echo 验证应用访问...
|
|
powershell -NoLogo -NoProfile -Command "try { $response = Invoke-WebRequest -Uri 'http://localhost:8080/%APP_NAME%/' -UseBasicParsing -TimeoutSec 10; if ($response.StatusCode -eq 200) { Write-Host '✓ 部署成功!' -ForegroundColor Green } else { Write-Host '✗ 访问失败' -ForegroundColor Red } } catch { Write-Host '⚠️ 无法访问:' $_.Exception.Message -ForegroundColor Yellow }"
|
|
echo.
|
|
|
|
:: ========== 完成 ==========
|
|
echo ============================================
|
|
echo 部署完成!
|
|
echo ============================================
|
|
echo.
|
|
echo 访问地址: http://localhost:8080/%APP_NAME%/
|
|
echo Tomcat日志: %TOMCAT_HOME%\logs\catalina.out
|
|
echo.
|
|
echo 停止命令: %TOMCAT_BIN%\shutdown.bat
|
|
echo.
|
|
goto :end
|
|
|
|
:error
|
|
echo.
|
|
echo ============================================
|
|
echo 部署失败!请检查上述错误信息
|
|
echo ============================================
|
|
exit /b 1
|
|
|
|
:end
|
|
endlocal
|