“wuzhen” 937cbb6bbd fix(security): 登录清理旧会话时容忍 JWT 解析失败,避免无法登录 4 ngày trước cách đây
..
.gitee 1ab9f9c458 init 1 năm trước cách đây
.run 1ab9f9c458 init 1 năm trước cách đây
ruoyi-admin 937cbb6bbd fix(security): 登录清理旧会话时容忍 JWT 解析失败,避免无法登录 4 ngày trước cách đây
ruoyi-common 24a1d7f745 fix(security): JWT 签名失败按未登录处理,避免页面报未知异常 4 ngày trước cách đây
ruoyi-extend 1e6dcb164c 提交 1 tháng trước cách đây
ruoyi-modules da8d332fac fix(security): 修复网安扫描相关严重/高危/中危漏洞并加固学生密码重置 4 ngày trước cách đây
script da8d332fac fix(security): 修复网安扫描相关严重/高危/中危漏洞并加固学生密码重置 4 ngày trước cách đây
.editorconfig 1ab9f9c458 init 1 năm trước cách đây
.gitignore 1ab9f9c458 init 1 năm trước cách đây
LICENSE 1ab9f9c458 init 1 năm trước cách đây
README-热启动脚本.md 249b1dfeb4 feat: 完善项目开发规范和测试文档体系 1 năm trước cách đây
README.md f3869785ff 提交 3 tháng trước cách đây
hot-start.bat 249b1dfeb4 feat: 完善项目开发规范和测试文档体系 1 năm trước cách đây
hot-start.sh 4ef2208a0c feat(frontend): unify attachment management spec and implement fetch+blob download\n\n- Implement forced download via fetch blob, delayed delete etc in repairOrder module\n- Add Attachment Management Unified Standard doctrine to cursorrules-frontend.md so future pages keep consistency\n- Update change log for download preview fix 1 năm trước cách đây
package-prod.sh 1d67506451 fix: 显式声明接口参数名并优化移动端若干页面 2 tháng trước cách đây
pom.xml 1e6dcb164c 提交 1 tháng trước cách đây
start-all.sh 600f0c621c 提交代码 1 năm trước cách đây
start-job.sh 1ab9f9c458 init 1 năm trước cách đây
start-main.sh 1ab9f9c458 init 1 năm trước cách đây
start-monitor.sh 1ab9f9c458 init 1 năm trước cách đây

README-热启动脚本.md

RuoYi 热启动脚本使用说明

📋 脚本概述

脚本名称:

  • Linux/macOS: hot-start.sh
  • Windows: hot-start.bat

脚本位置: backend/ 目录
创建时间: 2025-07-01 12:05:32
脚本版本: v1.0.0
功能说明: 为 RuoYi-Vue-Plus 项目提供智能热启动功能,支持多环境切换、热加载、调试模式等

跨平台支持

  • 🐧 Linux/macOS: 使用 hot-start.sh (Bash 脚本)
  • 🪟 Windows: 使用 hot-start.bat (批处理脚本)
  • 🔄 功能一致: 两个脚本提供完全相同的功能和参数

🚀 快速开始

基本使用

Linux/macOS

# 进入backend目录
cd backend

# 默认启动(开发环境 + 热加载)
./hot-start.sh

# 查看帮助信息
./hot-start.sh --help

# 检查环境配置
./hot-start.sh --check

Windows

# 进入backend目录
cd backend

# 默认启动(开发环境 + 热加载)
hot-start.bat

# 查看帮助信息
hot-start.bat --help

# 检查环境配置
hot-start.bat --check

常用启动命令

Linux/macOS

# 开发环境启动(默认)
./hot-start.sh

# 清理编译后启动
./hot-start.sh -c

# 调试模式启动
./hot-start.sh -d

# 生产环境启动
./hot-start.sh -p prod

# 指定端口启动
./hot-start.sh -P 9090

# 禁用热加载启动
./hot-start.sh --no-hot

Windows

# 开发环境启动(默认)
hot-start.bat

# 清理编译后启动
hot-start.bat -c

# 调试模式启动
hot-start.bat -d

# 生产环境启动
hot-start.bat -p prod

# 指定端口启动
hot-start.bat -P 9090

# 禁用热加载启动
hot-start.bat --no-hot

🔧 功能特性

1. 智能环境检查

  • ✅ 自动检查 Java 环境
  • ✅ 自动检查 Maven 环境
  • ✅ 验证目标模块存在
  • ✅ 检查热加载配置状态
  • ✅ 验证配置文件完整性

2. 热加载支持

  • 🔥 默认启用: 开发环境自动启用热加载功能
  • 🔥 智能重启: 修改 Java 代码后 1-3 秒自动重启
  • 🔥 配置热加载: 支持配置文件变更实时生效
  • 🔥 MyBatis 支持: XML 映射文件修改自动重新加载

3. 多环境支持

  • 🌍 开发环境: -p dev (默认)
  • 🌍 测试环境: -p test 或 -t
  • 🌍 生产环境: -p prod

4. 高级功能

  • 🐛 调试模式: -d 启用远程调试(端口 5005)
  • 🧹 清理编译: -c 清理后重新编译启动
  • 🔌 端口管理: 自动检测端口占用并提供解决方案
  • ⚙️ JVM 调优: 内置 G1GC 优化参数

📚 参数详解

命令行选项

选项 长选项 说明 示例
-h --help 显示帮助信息 ./hot-start.sh -h
-p --profile 指定环境配置 ./hot-start.sh -p prod
-P --port 指定端口号 ./hot-start.sh -P 9090
-m --module 指定启动模块 ./hot-start.sh -m ruoyi-admin
-c --clean 清理编译后启动 ./hot-start.sh -c
-d --debug 启用调试模式 ./hot-start.sh -d
-j --jvm-opts 自定义 JVM 参数 ./hot-start.sh -j "-Xmx4g"
-t --test 测试模式启动 ./hot-start.sh -t
--no-hot 禁用热加载功能 ./hot-start.sh --no-hot
--check 检查环境配置 ./hot-start.sh --check

环境配置说明

环境 配置文件 适用场景 热加载
dev application-dev.yml 开发调试 ✅ 启用
test application-test.yml 测试验证 ❌ 禁用
prod application-prod.yml 生产部署 ❌ 禁用

🎯 使用场景

日常开发

# 1. 开始开发
./hot-start.sh

# 2. 修改代码后,应用自动重启(1-3秒)
# 3. 继续开发,享受热加载带来的效率提升

问题调试

# 启用调试模式(远程调试端口:5005)
./hot-start.sh -d

# IDE中配置远程调试连接 localhost:5005

环境切换

# 测试环境验证
./hot-start.sh -t

# 生产环境模拟
./hot-start.sh -p prod --no-hot

清理重启

# 彻底清理后启动(解决依赖问题)
./hot-start.sh -c

🔍 故障排除

常见问题

1. 端口占用

现象: 提示端口已被占用 解决: 脚本会自动检测并询问是否杀死占用进程

2. 热加载不工作

现象: 修改代码后不自动重启 解决:

# 检查热加载配置
./hot-start.sh --check

# 如果配置正确,检查IDE自动编译设置

3. 编译失败

现象: 启动时编译报错 解决:

# 清理后重新编译
./hot-start.sh -c

4. Java/Maven 环境问题

现象: 环境检查失败 解决:

# 检查环境配置
./hot-start.sh --check

# 确保Java 17+和Maven 3.6+已正确安装
java -version
mvn -version

调试技巧

1. 查看详细日志

脚本会显示完整的 Maven 启动命令,可以手动执行进行调试:

# 脚本会显示类似这样的命令
mvn spring-boot:run -Dspring-boot.run.profiles=dev -Dspring-boot.run.jvmArguments="-Xms512m -Xmx2048m -XX:+UseG1GC"

2. 临时禁用热加载

如果怀疑热加载引起问题:

./hot-start.sh --no-hot

3. 自定义 JVM 参数

针对特定问题调整 JVM 参数:

./hot-start.sh -j "-Xmx4g -XX:+HeapDumpOnOutOfMemoryError"

🎨 脚本特色

美观的界面

  • 🎨 彩色输出提升用户体验
  • 🚀 精美的启动 Logo
  • 📊 清晰的配置信息展示
  • ✅ 直观的状态指示器

智能化特性

  • 🧠 自动环境检测
  • 🔧 智能端口管理
  • 📋 详细的错误提示
  • 🛡️ 优雅的异常处理

开发友好

  • ⚡ 一键启动,无需记忆复杂命令
  • 🔄 支持中断恢复(Ctrl+C)
  • 📚 内置帮助文档
  • 🎯 针对不同场景的预设选项

📝 配置文件关联

脚本与以下配置文件关联:

  • pom.xml: 检查 DevTools 依赖
  • application-dev.yml: 开发环境配置(含热加载配置)
  • application-test.yml: 测试环境配置
  • application-prod.yml: 生产环境配置

🔗 相关文档

  • 热加载配置详解: docs/开发文档/热加载配置说明.md
  • 项目启动指南: 工程本地启动指导.md
  • 变更记录: docs/变更管理/code-adjust-record-2025-07-01-zlwu.md

📞 技术支持

如果在使用过程中遇到问题:

  1. 查看帮助: ./hot-start.sh --help
  2. 环境检查: ./hot-start.sh --check
  3. 查阅文档: docs/开发文档/热加载配置说明.md
  4. 问题反馈: 查看变更记录文档中的联系方式

🎉 享受热启动带来的开发效率提升!

📝 温馨提示: 热加载功能仅在开发环境启用,生产环境会自动禁用以确保性能和稳定性。