Files
ccdi/docs/plans/backend/2026-03-19-java-backend-restart-script-backend-implementation.md

2.3 KiB

Java后端一键重启脚本实施记录

修改目标

  • 新增一个可直接在仓库内执行的后端重启脚本
  • 脚本需支持重启前自动执行 mvn -pl ruoyi-admin -am clean package -DskipTests
  • 重启完成后持续输出后端运行日志,便于直接观察启动结果和后续日志

修改内容

  • 新增 bin/restart_java_backend.sh
    • 默认执行 restart 动作,无参即可触发一键重启
    • 重启流程固定为“先构建,后停机,再启动”
    • 停机时同时兼容端口 62318ruoyi-admin.jar 关键字识别
    • 启动时改为参考 bin/run.bat,切换到 ruoyi-admin/target/ 后后台执行 java -jar ruoyi-admin.jar
    • 启动日志统一落到仓库根目录 logs/backend-console.log
    • 启动后以前台 tail -F 持续输出控制台日志,便于直接查看
    • 保留 startstoprestartstatus 四个动作,便于和现有 ry.sh 使用习惯保持一致
  • 新增 docs/tests/scripts/test-restart-java-backend.sh
    • 回归检查脚本是否切换到 ruoyi-admin/target 并使用 java -jar ruoyi-admin.jar 启动
    • 防止后续再次回退到 spring-boot:run 启动链路

验证记录

  • 执行 sh docs/tests/scripts/test-restart-java-backend.sh
    • 结果:通过,已校验脚本使用 java -jar 启动打包产物
  • 执行 sh -n bin/restart_java_backend.sh
    • 结果:通过,脚本语法正确
  • 执行 sh bin/restart_java_backend.sh restart
    • 结果:通过,构建完成后在 ruoyi-admin/target 内触发 java -jar ruoyi-admin.jar
    • 关键日志:
      • Starting RuoYiApplication using Java 21.0.9 with PID ... (/Users/wkc/Desktop/ccdi/ccdi/ruoyi-admin/target/ruoyi-admin.jar started by wkc in /Users/wkc/Desktop/ccdi/ccdi/ruoyi-admin/target)
      • Started RuoYiApplication in 7.457 seconds
    • 进程核验:
      • java -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -jar ruoyi-admin.jar
  • 执行 sh bin/restart_java_backend.sh stop
    • 结果:测试完成后已停止本次验证拉起的后端进程,避免残留端口占用

影响范围

  • 新增本地运维辅助脚本,不修改现有 Java 业务代码
  • 日志新增输出文件:logs/backend-console.log
  • 不影响前端、数据库和 Mock 服务逻辑