zlwu cb20218210 提交 5 月之前
..
README-热启动脚本.md cb20218210 提交 5 月之前
生产环境打包部署指南.md cb20218210 提交 5 月之前

README-热启动脚本.md

RuoYi 热启动脚本使用说明

📋 脚本概述

脚本名称:

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

脚本位置: crm/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

# 进入主工程后端目录(仓库根下 `crm/backend/`,勿使用已移除的顶层 `backend/`)
cd crm/backend

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

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

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

Windows

# 进入主工程后端目录(仓库根下 `crm/backend/`,勿使用已移除的顶层 `backend/`)
cd crm/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
  • 项目启动指南: crm/工程本地启动指导.md(相对仓库根目录)
  • 变更记录: docs/变更管理/code-adjust-record-2025-07-01-zlwu.md

📞 技术支持

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

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

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

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