@echo off REM ========================================================================== REM 项目部署脚本 REM 用于将Java后端项目部署到远程服务器(192.168.0.95) REM ========================================================================== echo ========================================================================== 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