# 生产一键部署脚本简化实施记录 ## 修改内容 - 简化 `bin/prod/deploy_from_package.sh` - 删除端口检测逻辑,不再依赖 `ss`、`lsof` 或 `netstat` - 删除前端解压兼容逻辑,不再探测多种 `dist.zip` 目录结构 - 保留并简化进程识别逻辑,直接使用 `ps -ef` - 简化 `bin/prod/deploy_from_package_test.sh` - 删除端口监听断言和端口检测回退场景 - 新增脚本文本断言,确认已移除端口检测和解压兼容 helper ## 当前脚本边界 - 仍然保留以下核心能力: - 脚本同目录唯一发布 zip 校验 - 发布包内唯一 `jar` 和唯一 `dist.zip` 校验 - 旧版后端 `jar` 时间戳备份 - 旧版 `frontend/dist` 时间戳备份 - 使用 `ps -ef` 停止旧后端进程 - 替换新 `jar` - 将 `dist.zip` 直接解压到 `frontend/` - 启动新的 Java 进程并写入 PID 文件 ## 删除的复杂逻辑 - 不再等待端口监听成功 - 不再兼容 `ss`、`lsof`、`netstat` 三种端口检测方式 - 不再兼容 `dist.zip` 根目录、`dist/index.html` 和自动 `find index.html` 多种结构 - 当前前端解压只接受一种约定: - `dist.zip` 解压到 `frontend/` 后必须得到 `frontend/dist/` ## 验证结果 - 已执行 `sh -n bin/prod/deploy_from_package.sh` - 已执行 `sh bin/prod/deploy_from_package_test.sh` - 自测确认: - 脚本使用 `ps -ef` - 脚本中已移除端口检测 helper - 脚本中已移除前端解压兼容 helper - 正常部署链路仍然通过 - 多个发布 zip 失败场景仍然通过