Files
aiotagro-mini/deploy.bat

149 lines
3.9 KiB
Batchfile
Raw Permalink Normal View History

@echo off
REM ==========================================================================
REM 项目部署脚本
REM 用于将Java后端项目部署到远程服务器(192.168.0.95)
REM ==========================================================================
echo ==========================================================================
2025-10-06 15:21:03 +08:00
echo AIOTAGRO后台管理系统部署脚本
echo ==========================================================================
REM 配置信息
set REMOTE_HOST=192.168.0.95
set REMOTE_USER=root
set REMOTE_PASSWORD=aiotagro
set REMOTE_DIR=/data/java/aiotagro
echo 服务器地址: %REMOTE_HOST%
echo 用户名: %REMOTE_USER%
echo 目标目录: %REMOTE_DIR%
echo.
REM 本地项目路径
set LOCAL_PROJECT_DIR=E:\vue\aiotagro-mini
echo 切换到项目目录: %LOCAL_PROJECT_DIR%
cd /d %LOCAL_PROJECT_DIR%
REM 检查是否安装了Maven
echo 检查Maven环境...
mvn -v >nul 2>&1
if %errorlevel% neq 0 (
echo.
echo [错误] 未找到Maven命令
echo 请先安装Maven并配置环境变量PATH
echo 下载地址: https://maven.apache.org/download.cgi
echo.
pause
exit /b 1
)
echo.
echo Maven版本信息:
mvn -v
echo.
REM 打包项目
echo ==================== 开始打包项目 ====================
mvn clean package -Dmaven.test.skip=true
if %errorlevel% neq 0 (
echo.
echo [错误] 项目打包失败,请检查代码是否有错误
pause
exit /b 1
)
echo.
echo ==================== 打包完成 ====================
REM 查找打包后的jar文件
echo 查找打包生成的jar文件...
for /f "delims=" %%i in ('dir aagro-server\target\*.jar /b /s') do set JAR_FILE=%%i
if "%JAR_FILE%"=="" (
echo.
echo [错误] 未找到打包后的jar文件
echo 请确认项目结构是否正确
pause
exit /b 1
)
echo 找到jar文件: %JAR_FILE%
REM 检查是否安装了Putty工具(pscp和plink)
echo.
echo 检查Putty工具...
pscp -V >nul 2>&1
if %errorlevel% neq 0 (
echo.
echo [警告] 未找到pscp命令请先安装Putty工具
echo 下载地址: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
echo.
echo 安装完成后请将Putty安装目录添加到环境变量PATH中
pause
exit /b 1
)
REM 使用pscp上传文件
echo.
echo ==================== 开始上传文件 ====================
pscp -pw %REMOTE_PASSWORD% "%JAR_FILE%" %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%/
if %errorlevel% neq 0 (
echo.
echo [错误] 文件上传失败,请检查网络连接和服务器配置
pause
exit /b 1
)
echo 上传配置文件...
pscp -pw %REMOTE_PASSWORD% "aagro-server\src\main\resources\application-prod.yaml" %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%/
if %errorlevel% neq 0 (
echo.
echo [错误] 配置文件上传失败
pause
exit /b 1
)
echo.
echo ==================== 上传启动脚本 ====================
echo cd /data/java/aiotagro > start.sh
echo nohup java -jar *.jar --spring.profiles.active=prod ^> app.log 2^>^&1 ^& >> start.sh
echo echo "应用已启动" >> start.sh
echo 上传启动脚本...
pscp -pw %REMOTE_PASSWORD% start.sh %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%/
if %errorlevel% neq 0 (
echo.
echo [错误] 启动脚本上传失败
pause
exit /b 1
)
REM 在远程服务器上设置权限并启动应用
echo.
echo ==================== 远程部署 ====================
echo 设置启动脚本权限...
plink -ssh -P 22 -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "chmod +x %REMOTE_DIR%/start.sh"
if %errorlevel% neq 0 (
echo.
echo [错误] 设置远程脚本权限失败
pause
exit /b 1
)
echo 启动应用...
plink -ssh -P 22 -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_DIR%; ./start.sh"
if %errorlevel% neq 0 (
echo.
echo [错误] 远程启动应用失败
pause
exit /b 1
)
echo.
echo ==================== 部署完成 ====================
echo 部署成功完成!
echo 服务器: %REMOTE_HOST%
echo 目录: %REMOTE_DIR%
echo.
pause