1.安装putty
地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
2.编辑 一键部署.bat文件
@echo off
setlocal
:: 设置服务器信息
set SERVER_IP=192.168.0.xx
set SSH_USER=root
set SSH_PASSWORD=xxxxxx
:: 设置项目路径
set BACKEND_PROJECT_PATH=D:\projects\rsfz\api
set FRONTEND_PROJECT_PATH=D:\projects\rsfz\ui
:: 设置服务器上的项目路径
set SERVER_BACKEND_PATH=/home/java/rsfz/api
set SERVER_FRONTEND_PATH=/home/java/rsfz
set SH_PATH=/home/java/rebuild
set SH_NAME=rsfz.sh
:: 设置构建输出路径
set BACKEND_BUILD_PATH=%BACKEND_PROJECT_PATH%\ruoyi-admin\target\api.jar
set FRONTEND_BUILD_PATH=%FRONTEND_PROJECT_PATH%\dist
:: 显示欢迎信息
echo Starting deployment of the project...
:: Maven 打包后端
echo Building backend project with Maven...
cd /d %BACKEND_PROJECT_PATH%
call mvn clean package -DskipTests -o
if errorlevel 1 (
echo Maven build failed.
pause
exit /b %errorlevel%
)
:: Npm 打包前端
echo Building frontend project with Npm...
cd /d %FRONTEND_PROJECT_PATH%
call npm run build:prod
if errorlevel 1 (
echo Npm build failed.
pause
exit /b %errorlevel%
)
:: 使用SCP上传后端Jar包到服务器
echo Uploading backend JAR to server...
pscp -q -i %SSH_USER% -pw %SSH_PASSWORD% %BACKEND_BUILD_PATH% %SSH_USER%@%SERVER_IP%:%SERVER_BACKEND_PATH%
if errorlevel 1 (
echo Failed to upload backend JAR.
pause
exit /b %errorlevel%
)
:: 执行服务器上的Shell脚本重启项目
echo Restarting the project on the server...
plink -ssh -pw %SSH_PASSWORD% %SSH_USER%@%SERVER_IP% "cd %SH_PATH% && sh %SH_NAME%"
if errorlevel 1 (
echo Failed to restart the project on the server.
pause
exit /b %errorlevel%
)
:: 删除服务器上的原先dist目录
echo Deleting the old dist directory on the server...
plink -ssh -pw %SSH_PASSWORD% %SSH_USER%@%SERVER_IP% "rm -rf '%SERVER_FRONTEND_PATH%/dist'"
if errorlevel 1 (
echo Failed to delete old dist directory on server.
pause
exit /b %errorlevel%
)
:: 使用SCP上传前端Dist文件到服务器
echo Uploading frontend dist to server...
pscp -q -r -i %SSH_USER% -pw %SSH_PASSWORD% %FRONTEND_BUILD_PATH% %SSH_USER%@%SERVER_IP%:%SERVER_FRONTEND_PATH%
if errorlevel 1 (
echo Failed to upload frontend dist.
pause
exit /b %errorlevel%
)
echo Deployment completed successfully.
pause