# 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 ```bash # 进入backend目录 cd backend # 默认启动(开发环境 + 热加载) ./hot-start.sh # 查看帮助信息 ./hot-start.sh --help # 检查环境配置 ./hot-start.sh --check ``` #### Windows ```cmd # 进入backend目录 cd backend # 默认启动(开发环境 + 热加载) hot-start.bat # 查看帮助信息 hot-start.bat --help # 检查环境配置 hot-start.bat --check ``` ### 常用启动命令 #### Linux/macOS ```bash # 开发环境启动(默认) ./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 ```cmd # 开发环境启动(默认) 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` | 生产部署 | ❌ 禁用 | ## 🎯 使用场景 ### 日常开发 ```bash # 1. 开始开发 ./hot-start.sh # 2. 修改代码后,应用自动重启(1-3秒) # 3. 继续开发,享受热加载带来的效率提升 ``` ### 问题调试 ```bash # 启用调试模式(远程调试端口:5005) ./hot-start.sh -d # IDE中配置远程调试连接 localhost:5005 ``` ### 环境切换 ```bash # 测试环境验证 ./hot-start.sh -t # 生产环境模拟 ./hot-start.sh -p prod --no-hot ``` ### 清理重启 ```bash # 彻底清理后启动(解决依赖问题) ./hot-start.sh -c ``` ## 🔍 故障排除 ### 常见问题 #### 1. 端口占用 **现象**: 提示端口已被占用 **解决**: 脚本会自动检测并询问是否杀死占用进程 #### 2. 热加载不工作 **现象**: 修改代码后不自动重启 **解决**: ```bash # 检查热加载配置 ./hot-start.sh --check # 如果配置正确,检查IDE自动编译设置 ``` #### 3. 编译失败 **现象**: 启动时编译报错 **解决**: ```bash # 清理后重新编译 ./hot-start.sh -c ``` #### 4. Java/Maven 环境问题 **现象**: 环境检查失败 **解决**: ```bash # 检查环境配置 ./hot-start.sh --check # 确保Java 17+和Maven 3.6+已正确安装 java -version mvn -version ``` ### 调试技巧 #### 1. 查看详细日志 脚本会显示完整的 Maven 启动命令,可以手动执行进行调试: ```bash # 脚本会显示类似这样的命令 mvn spring-boot:run -Dspring-boot.run.profiles=dev -Dspring-boot.run.jvmArguments="-Xms512m -Xmx2048m -XX:+UseG1GC" ``` #### 2. 临时禁用热加载 如果怀疑热加载引起问题: ```bash ./hot-start.sh --no-hot ``` #### 3. 自定义 JVM 参数 针对特定问题调整 JVM 参数: ```bash ./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. **问题反馈**: 查看变更记录文档中的联系方式 --- **🎉 享受热启动带来的开发效率提升!** **📝 温馨提示**: 热加载功能仅在开发环境启用,生产环境会自动禁用以确保性能和稳定性。