149 lines
3.9 KiB
Batchfile
149 lines
3.9 KiB
Batchfile
|
|
@echo off
|
|||
|
|
REM ==========================================================================
|
|||
|
|
REM 项目部署脚本
|
|||
|
|
REM 用于将Java后端项目部署到远程服务器(192.168.0.95)
|
|||
|
|
REM ==========================================================================
|
|||
|
|
|
|||
|
|
echo ==========================================================================
|
|||
|
|
echo 芋道后台管理系统部署脚本
|
|||
|
|
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
|