@echo off chcp 936 >nul 2>&1 title aomin-gateway :8080 setlocal EnableDelayedExpansion REM ============================================================ REM aomin-gateway 启动器(鹤仆云 S 线一期演示包) REM REM 绿色化要点: REM 1) JAVA_HOME 用包内自带的 jdk-21.0.2,别人机器不用装 Java; REM 2) 日志目录由 LOG_DIR 传给 Spring Boot,不写死盘符; REM 3) 有 jar 就直接跑,不碰 Maven(构建只在没 jar 时才发生)。 REM ============================================================ REM 项目根 = 本文件往上两级(app\aomin-gateway -> 包根) pushd "%~dp0..\.." set "ROOT=%CD%\" popd set "JAVA_HOME=%ROOT%jdk-21.0.2" set "LOG_DIR=%ROOT%logs" set "JAR=%ROOT%app\aomin-gateway\target\aomin-gateway-0.0.1-SNAPSHOT.jar" if not exist "%JAVA_HOME%\bin\java.exe" ( echo [ERROR] 找不到包内 JDK:%JAVA_HOME% echo 包里必须自带 jdk-21.0.2 目录;如果被删了,请装 JDK 21 并改本脚本。 exit /b 1 ) if not exist "%LOG_DIR%" mkdir "%LOG_DIR%" set "PATH=%JAVA_HOME%\bin;%PATH%" echo ================================================ echo aomin-gateway :8080 echo JAVA_HOME %JAVA_HOME% echo LOG_DIR %LOG_DIR% echo ================================================ echo. cd /d "%ROOT%app\aomin-gateway" if not exist "%JAR%" ( echo [INFO] 未找到 jar,开始构建(需要包内 maven 目录)... if not exist "%ROOT%maven\bin\mvn.cmd" ( echo [ERROR] 没有 jar 也没有 maven,无法启动。 echo 正常发的包一定带 jar,请检查 app\aomin-gateway\target\ exit /b 1 ) set "PATH=%ROOT%maven\bin;%PATH%" call mvn -B -o -Dmaven.repo.local="%ROOT%data\m2repo" clean package -DskipTests if errorlevel 1 ( echo [ERROR] 构建失败,看上面的错误信息 exit /b 1 ) ) REM 环境里可能存在 SERVER__PORT(部分工具会注入),Spring Boot 会把它 REM 当成 server.port 读进去,导致端口变成随机值。清掉,并在命令行显式指定。 REM ---- SEC-Z-01: the DB password must come from the environment ---- REM No default password is built into this project or into this script. if "%DB_PASS%"=="" ( echo [ERROR] DB_PASS is not set. Nothing will start. echo Run: set DB_PASS=your_password echo Then run this script again. exit /b 1 ) set "SERVER__PORT=" REM 本地演示要灌演示数据(admin / 字典 / 示范小区)。 REM 生产环境不要设这个变量——application.yml 里默认 false。 set "BIZ_DEMO_ENABLED=true" echo [INFO] 健康检查 http://127.0.0.1:8080/health echo [INFO] 日志 %LOG_DIR%\app.log echo [INFO] 按 Ctrl+C 停止 echo. REM 前端目录也用绝对路径传进去(WebConfig 里不再写死盘符)。 REM 不传的话默认找“当前目录\web”,而这个 bat 已经 cd 到 app\aomin-gateway,会 404。 java -Dbiz.web.dir="%ROOT%web" -jar "%JAR%" --server.port=8080 echo. echo [INFO] 已停止