@echo off setlocal REM 远程服务器配置 set REMOTE_HOST=192.168.0.95 set REMOTE_USER=root set REMOTE_PASSWORD=aiotagro set REMOTE_DIR=/data/java/aiotmini REM 本地项目配置 set SERVER_MODULE=aagro-server set TARGET_JAR=%SERVER_MODULE%\target\%SERVER_MODULE%.jar echo 开始部署项目到远程服务器... REM 1. 清理并构建项目 echo 正在清理并构建项目... call mvn clean package -Dmaven.test.skip=true if %errorlevel% neq 0 ( echo 项目构建失败,退出部署 exit /b 1 ) echo 项目构建成功 REM 2. 检查目标jar文件是否存在 if not exist "%TARGET_JAR%" ( echo 目标jar文件不存在: %TARGET_JAR% exit /b 1 ) REM 3. 上传到远程服务器 (需要安装pscp工具) echo 正在上传文件到远程服务器... pscp -pw %REMOTE_PASSWORD% %TARGET_JAR% %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%/ if %errorlevel% neq 0 ( echo 文件上传失败 exit /b 1 ) echo 文件上传成功 REM 4. 上传Dockerfile到远程服务器 echo 正在上传Dockerfile到远程服务器... pscp -pw %REMOTE_PASSWORD% %SERVER_MODULE%\Dockerfile %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_DIR%/ if %errorlevel% neq 0 ( echo Dockerfile上传失败 exit /b 1 ) echo Dockerfile上传成功 REM 5. 在远程服务器上构建Docker镜像并运行容器 echo 正在远程服务器上构建Docker镜像并运行容器... plink -ssh -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_DIR% && docker build -t aagro-server . && docker stop aagro-server-container 2>/dev/null && docker rm aagro-server-container 2>/dev/null && docker run -d --name aagro-server-container --restart always -p 48080:48080 -e SPRING_PROFILES_ACTIVE=custom aagro-server" if %errorlevel% neq 0 ( echo 远程Docker操作失败 exit /b 1 ) echo 项目部署成功! echo 访问地址: http://%REMOTE_HOST%:48080 pause