@echo off @chcp 65001 >nul setlocal enabledelayedexpansion echo ================================ echo HFLN portal Service Deployment Script echo ================================ :: Configuration section - Please modify the following configurations according to actual situation set REMOTE_HOST=43.137.10.199 set REMOTE_USER=chejianzheng set REMOTE_PASSWORD=Hfln666888 set REMOTE_PATH=/work/portal set JAR_NAME=portal-service-boot.jar set START_SCRIPT=hfln-portal-service.sh where mvn >nul 2>nul if %errorlevel% neq 0 ( echo Error: Maven not found, please install Maven and configure environment variables pause exit /b 1 ) echo. echo [1/4] Executing mvn clean package... call mvn clean package -Dmaven.test.skip=true if %errorlevel% neq 0 ( echo Error: Maven build failed pause exit /b 1 ) echo. echo [2/4] Searching for built jar package... set JAR_PATH= for /f "delims=" %%i in ('dir "portal-service-server\target\portal-service-boot.jar" /b /s 2^>nul') do ( set JAR_PATH=%%i ) if "!JAR_PATH!"=="" ( echo Error: Built jar package not found pause exit /b 1 ) echo Found jar package: !JAR_PATH! echo. echo [3/4] Cleaning up old jar packages on remote server... for /f "tokens=* USEBACKQ" %%a in (`powershell "Get-Date -Format yyyyMMddHHmmss"`) do ( set "datestamp=%%a" ) echo. | plink -ssh -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_PATH% && if [ -f %JAR_NAME% ]; then mv %JAR_NAME% portal-service-boot-%datestamp%.jar; echo 'Renamed old jar package'; else echo 'Old jar package not found'; fi" echo. | plink -ssh -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_PATH% && ls -t *.jar | tail -n +4 | xargs -r rm && echo 'Cleaned up old backups, kept latest 3 jar packages'" echo Cleanup completed, kept the latest 3 jar package backups echo. echo [4/4] Pushing jar package to server... if not exist "pscp.exe" ( echo Warning: pscp.exe not found, trying to use system installed version... ) pscp -pw %REMOTE_PASSWORD% "!JAR_PATH!" %REMOTE_USER%@%REMOTE_HOST%:%REMOTE_PATH%/%JAR_NAME% if %errorlevel% neq 0 ( echo Error: Failed to push jar package to server pause exit /b 1 ) echo. echo [5/5] Executing remote startup script... echo. | plink -ssh -pw %REMOTE_PASSWORD% %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_PATH% && sudo ./%START_SCRIPT% restart" if %errorlevel% neq 0 ( echo Warning: Remote startup script execution may have problems ) echo. echo Deployment completed! pause