refs
用户 zhizhijie <zhizhijie@users.noreply.gitee.com>
星期日, 九月 13, 2026 15:04 +0800
提交者 zhizhijie <zhizhijie@users.noreply.gitee.com>
星期日, 九月 13, 2026 15:04 +0800
提交3434d8c72af1c946dcf8b3d0aa8ef0fd41896c37
目录 4f1ed3810dd9f3edecf9ce0e7ce0a9b6ad466e5d 目录 | zip | gz
parent 9555b01c999d2846c9efcd591c545b4a6eae9cb1 查看 | 对比
feat: 打包部署支持(一键打包脚本 + jar 内嵌前端 + jwt.secret 部署陷阱修复)

需求:把系统打包部署到另一台机器。

- 新增 package-deploy.py:前端 npm run build → dist 内嵌进后端 jar(拷入 resources/static)→ mvn clean package
→ 清空 static(保持仓库干净)→ 组装 deploy/traffic-audit-deploy-YYYYMMDD/ → 压缩 zip(69.9 MB / 246 文件,jar 55.5 MB)。
- 部署包结构沿用 8 月版习惯:backend(jar + docs + application.yml + 启停脚本)、frontend(dist + nginx 示例)、
db(init.sql + sql_city_bus/taxi/wyc.sql)、README。
- 修复部署陷阱:jwt.secret 填成非法 Base64(如中文)时,jjwt 0.9.1 解码抛 ArrayIndexOutOfBoundsException,
登录接口返回 500。JwtUtils 新增 secretKeyBytes():Base64 合法则按 Base64 解码(与历史 token 兼容),
否则按 UTF-8 字节并打 WARN。打包配置给出可直接使用的 32 位十六进制示例值。
- 更正 docs/打包部署说明.md 三处不实:① 不需要 Redis(pom 无依赖、代码未用);② 前端改为内嵌进 jar
(旧说明称已内置 file:./web/,实际 jar 内无静态文件,旧包靠 nginx);③ 补 sql_wyc.sql、summary.template-dir、
jwt.secret 规则、部署后验证清单与常见问题。
- 验证:部署包 backend 拷到 _deploytest/ 用 8091 独立启动 → 启动成功、GET / 200(含 #app)、静态 js 200、
登录 200 拿 token、带 token 导出汇总大表 200 / 950,783 字节(与开发机产物同尺寸);中文 secret 兜底路径同样 200。
开发机后端已重启加载新代码,登录与导出无回归(950,783 字节)。
- .gitignore 增加 deploy/、traffic-audit-deploy-*.zip、_deploytest/。
- 文档:docs/功能测试报告/功能测试报告_部署包打包与独立启动_2026-09-13.md、docs/工作日结/工作日结_2026-09-13.md。
4个文件已修改
2个文件已添加
653 ■■■■■ 已修改文件
.gitignore 6 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
docs/功能测试报告/功能测试报告_部署包打包与独立启动_2026-09-13.md 91 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
docs/工作日结/工作日结_2026-09-13.md 10 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
docs/打包部署说明.md 237 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
package-deploy.py 283 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
traffic-audit-server/src/main/java/com/trafficaudit/security/utils/JwtUtils.java 26 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史