mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-26 21:26:39 +08:00
159 lines
4.0 KiB
Markdown
159 lines
4.0 KiB
Markdown
# PMS模块编译优化配置指南
|
||
|
||
## 概述
|
||
|
||
为了提高开发效率,我们优化了PMS模块的编译流程,现在可以通过快捷键快速编译PMS模块,而无需编译整个项目。
|
||
|
||
## 编译脚本说明
|
||
|
||
### 1. pms-compile.ps1 - 基础快速编译
|
||
|
||
**功能特点:**
|
||
- 只编译 `ruoyi-pms` 模块及其必要依赖
|
||
- 跳过其他业务模块(demo、generator、job、system、workflow)
|
||
- 支持并行编译,提高编译速度
|
||
- 默认跳过测试,加快编译过程
|
||
|
||
**使用方法:**
|
||
```powershell
|
||
# 基础编译
|
||
.\pms-compile.ps1
|
||
|
||
# 清理后编译
|
||
.\pms-compile.ps1 -Clean
|
||
|
||
# 包含测试编译
|
||
.\pms-compile.ps1 -SkipTests:$false
|
||
|
||
# 离线编译
|
||
.\pms-compile.ps1 -Offline
|
||
|
||
# 详细输出
|
||
.\pms-compile.ps1 -Quiet:$false
|
||
```
|
||
|
||
### 2. pms-smart-compile.ps1 - 智能增量编译
|
||
|
||
**功能特点:**
|
||
- 支持增量编译,只在文件有变化时才重新编译
|
||
- 自动检测源码文件变化(.java、.xml、.properties)
|
||
- 维护编译时间戳,避免不必要的重复编译
|
||
- 更智能的编译策略
|
||
|
||
**使用方法:**
|
||
```powershell
|
||
# 智能编译(推荐)
|
||
.\pms-smart-compile.ps1
|
||
|
||
# 强制重新编译
|
||
.\pms-smart-compile.ps1 -Force
|
||
|
||
# 清理后编译
|
||
.\pms-smart-compile.ps1 -Clean
|
||
|
||
# 详细输出模式
|
||
.\pms-smart-compile.ps1 -Verbose
|
||
```
|
||
|
||
## VSCode快捷键配置
|
||
|
||
### 当前配置的快捷键
|
||
|
||
| 快捷键 | 功能 | 说明 |
|
||
| -------------- | ------------ | ----------------------- |
|
||
| `Ctrl+Alt+B` | PMS快速编译 | 执行 pms-compile.ps1 |
|
||
| `Ctrl+Shift+B` | 完整项目编译 | 编译整个项目 |
|
||
| `Ctrl+Shift+P` | PMS模块编译 | Maven原生PMS编译 |
|
||
| `Ctrl+F5` | 启动应用 | 运行Spring Boot应用 |
|
||
| `Ctrl+Alt+S` | 开发环境启动 | 执行 start-dev-utf8.ps1 |
|
||
|
||
### 推荐的开发流程
|
||
|
||
1. **日常开发编译:** 使用 `Ctrl+Alt+B` 快速编译PMS模块
|
||
2. **首次编译或依赖变更:** 使用 `Ctrl+Shift+B` 完整编译
|
||
3. **启动应用:** 使用 `Ctrl+F5` 启动Spring Boot应用
|
||
|
||
## Maven命令对比
|
||
|
||
### 传统完整编译
|
||
```bash
|
||
mvn clean compile -T 1C -DskipTests=true
|
||
```
|
||
- 编译所有模块
|
||
- 耗时较长(通常30-60秒)
|
||
|
||
### PMS模块编译
|
||
```bash
|
||
mvn compile -pl ruoyi-modules/ruoyi-pms -am -T 1C -DskipTests=true
|
||
```
|
||
- 只编译PMS模块及其依赖
|
||
- 耗时较短(通常10-20秒)
|
||
|
||
## 编译优化原理
|
||
|
||
### 1. 模块选择优化
|
||
- 使用 `-pl ruoyi-modules/ruoyi-pms` 指定编译模块
|
||
- 使用 `-am` (also make) 自动包含依赖模块
|
||
- 跳过不相关的业务模块
|
||
|
||
### 2. 依赖分析
|
||
PMS模块的编译依赖链:
|
||
```
|
||
ruoyi-pms
|
||
├── ruoyi-common-core
|
||
├── ruoyi-common-mybatis
|
||
├── ruoyi-common-web
|
||
├── ruoyi-common-security
|
||
└── 其他必要的common模块
|
||
```
|
||
|
||
### 3. 性能优化
|
||
- 并行编译:`-T 1C`(使用1个CPU核心)
|
||
- 跳过测试:`-DskipTests=true`
|
||
- 安静模式:`-q`(减少输出)
|
||
|
||
## 故障排除
|
||
|
||
### 常见问题
|
||
|
||
1. **编译失败:依赖模块未编译**
|
||
```
|
||
解决方案:使用 -Clean 参数或先执行完整编译
|
||
```
|
||
|
||
2. **PowerShell执行策略限制**
|
||
```powershell
|
||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||
```
|
||
|
||
3. **中文乱码问题**
|
||
```
|
||
脚本已自动设置UTF-8编码,无需额外配置
|
||
```
|
||
|
||
### 性能监控
|
||
|
||
编译脚本会显示:
|
||
- 编译耗时
|
||
- 编译范围
|
||
- 文件变化检测(智能编译)
|
||
|
||
## 最佳实践
|
||
|
||
1. **开发阶段:** 优先使用 `pms-smart-compile.ps1` 进行增量编译
|
||
2. **依赖变更:** 使用 `pms-compile.ps1 -Clean` 清理编译
|
||
3. **发布前:** 使用完整项目编译确保所有模块正常
|
||
4. **CI/CD:** 在持续集成中仍使用完整编译
|
||
|
||
## 扩展配置
|
||
|
||
如需为其他模块创建类似的快速编译,可以参考PMS编译脚本,修改模块路径:
|
||
|
||
```powershell
|
||
# 示例:为system模块创建快速编译
|
||
$params += "-pl", "ruoyi-modules/ruoyi-system", "-am"
|
||
```
|
||
|
||
## 总结
|
||
|
||
通过这套编译优化方案,PMS模块的编译时间可以减少50-70%,显著提高开发效率。建议开发团队统一使用这套配置。 |