新增后端一键重启脚本
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Java后端一键重启脚本实施记录
|
||||
|
||||
## 修改目标
|
||||
|
||||
- 新增一个可直接在仓库内执行的后端重启脚本
|
||||
- 脚本需支持重启前自动执行 `mvn -pl ruoyi-admin -am clean package -DskipTests`
|
||||
- 重启完成后持续输出后端运行日志,便于直接观察启动结果和后续日志
|
||||
|
||||
## 修改内容
|
||||
|
||||
- 新增 `bin/restart_java_backend.sh`
|
||||
- 默认执行 `restart` 动作,无参即可触发一键重启
|
||||
- 重启流程固定为“先构建,后停机,再启动”
|
||||
- 停机时同时兼容端口 `62318` 和 `com.ruoyi.RuoYiApplication` 关键字识别,覆盖 `jar`、IDE、`spring-boot:run` 等常见启动方式
|
||||
- 启动时改为切换到 `ruoyi-admin/` 目录后后台执行 `mvn -DskipTests spring-boot:run`
|
||||
- 启动日志统一落到仓库根目录 `logs/backend-console.log`
|
||||
- 启动后以前台 `tail -F` 持续输出控制台日志,便于直接查看
|
||||
- 保留 `start`、`stop`、`restart`、`status` 四个动作,便于和现有 `ry.sh` 使用习惯保持一致
|
||||
- 新增 `docs/tests/scripts/test-restart-java-backend.sh`
|
||||
- 回归检查 `spring-boot:run` 是否在 `ruoyi-admin` 模块目录执行
|
||||
- 防止再次误从根聚合工程触发,导致 `Unable to find a suitable main class`
|
||||
|
||||
## 验证记录
|
||||
|
||||
- 执行 `sh docs/tests/scripts/test-restart-java-backend.sh`
|
||||
- 结果:通过,已校验 `spring-boot:run` 在 `ruoyi-admin` 模块目录执行
|
||||
- 执行 `sh -n bin/restart_java_backend.sh`
|
||||
- 结果:通过,脚本语法正确
|
||||
- 执行 `sh bin/restart_java_backend.sh restart`
|
||||
- 结果:通过,构建完成后在 `ruoyi-admin` 模块内触发 `spring-boot:run`
|
||||
- 关键日志:
|
||||
- `Building ruoyi-admin 3.9.1`
|
||||
- `Starting RuoYiApplication`
|
||||
- `Started RuoYiApplication`
|
||||
- 执行 `sh bin/restart_java_backend.sh stop`
|
||||
- 结果:测试完成后已停止本次验证拉起的后端进程,避免残留端口占用
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 新增本地运维辅助脚本,不修改现有 Java 业务代码
|
||||
- 日志新增输出文件:`logs/backend-console.log`
|
||||
- 不影响前端、数据库和 Mock 服务逻辑
|
||||
30
docs/tests/scripts/test-restart-java-backend.sh
Normal file
30
docs/tests/scripts/test-restart-java-backend.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/../../.." && pwd)
|
||||
SCRIPT_FILE="$ROOT_DIR/bin/restart_java_backend.sh"
|
||||
|
||||
echo "[检查] spring-boot:run 必须在 ruoyi-admin 模块目录执行"
|
||||
|
||||
if ! grep -Fq 'cd "$ROOT_DIR/ruoyi-admin"' "$SCRIPT_FILE"; then
|
||||
echo "失败: 未切换到 ruoyi-admin 模块目录"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -Fq 'nohup mvn -pl ruoyi-admin -am -DskipTests' "$SCRIPT_FILE"; then
|
||||
echo "失败: 仍在根工程直接执行 spring-boot:run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -Fq 'nohup mvn -DskipTests' "$SCRIPT_FILE"; then
|
||||
echo "失败: 未使用模块内 mvn -DskipTests spring-boot:run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -Fq 'spring-boot:run >> "$CONSOLE_LOG" 2>&1 &' "$SCRIPT_FILE"; then
|
||||
echo "失败: 未找到 spring-boot:run 后台启动命令"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "通过"
|
||||
Reference in New Issue
Block a user