在使用多模块 Spring Boot 项目时我们经常会遇到这样一个问题在 IDEA 中右键模块 → 重命名会看到三个选项重命名模块Rename Module重命名目录Rename Directory重命名模块和目录Rename Module Directory与此同时Maven 多模块项目中又存在artifactIdmodule目录名这些“名字”看起来很像但其实完全不是一个体系。如果不搞清楚在做项目改造比如改项目名、拆模块时很容易踩坑。一、IDEA 的三个“重命名”到底在改什么1、重命名模块Rename Module 修改的是IDEA 的 Module 名IDE 内部标识特点只影响 IDEA不影响 Maven不影响目录不影响pom.xml本质是改.iml 文件 .idea/modules.xml 可以理解为IDE 里的“显示名 / 逻辑名”2、重命名目录Rename Directory 修改的是操作系统里的文件夹名称例如order-service → order-service-new特点会影响 Maven因为路径变了不会自动修改pom.xml不会改module 本质是改物理路径3、重命名模块和目录Rename Module Directory 同时做两件事改 IDEA Module 名改文件夹名但注意❗仍然不会修改 Maven 的pom.xml二、Maven 多模块中的“名字体系”一个模块在 Maven 中其实有三种“名字”1、artifactId最核心artifactIdorder-service/artifactId 作用唯一标识模块配合 groupId生成的 jar 名依赖引用使用这是 Maven 世界的“真正名字”2、module父工程引用modulesmoduleorder-service/module/modules 本质目录路径相对路径Maven 会去找./order-service/pom.xml3、目录名文件夹order-service/ 作用被module引用组织代码结构三、三者关系总结核心认知名称属于谁是否影响构建本质Module 名IDEAIDEA❌IDE 标识目录名文件系统✅路径moduleMaven✅路径引用artifactIdMaven✅构建坐标四、为什么会“改了目录就报错”因为module 目录路径如果你只改order-service → order-service-new但父 POMmoduleorder-service/module Maven 会找./order-service/pom.xml ❌不存在于是报错Child module does not exist五、实战多模块项目重命名ruoyi → mobilecom假设你的项目结构ruoyi/ ├── ruoyi-admin ├── ruoyi-system ├── ruoyi-common └── pom.xml现在你要改成mobilecom/ ├── mobilecom-admin ├── mobilecom-system ├── mobilecom-common1、改造步骤推荐顺序第一步修改根工程父 POMartifactIdmobilecom/artifactId同时modulesmodulemobilecom-admin/modulemodulemobilecom-system/modulemodulemobilecom-common/module/modules第二步修改子模块 artifactId例如artifactIdruoyi-admin/artifactId改为artifactIdmobilecom-admin/artifactId所有模块都要改。第三步修改目录名非常关键ruoyi-admin → mobilecom-admin ruoyi-system → mobilecom-system第四步修改父子引用关系子模块中parentgroupIdxxx/groupIdartifactIdruoyi/artifactId/parent改为artifactIdmobilecom/artifactId第五步全局搜索替换按需替换搜索ruoyi可能涉及包名package配置文件yml日志路径前端接口路径第六步重新导入 Maven在 IDEAReload Maven Project2、常见坑❌ 只改目录 父module没改 → 直接炸❌ 只改 artifactId 依赖引用全失效❌ 忘记改 parent 子模块找不到父工程❌ 本地缓存问题建议执行mvn cleaninstall-U六、推荐最佳实践1、命名统一原则artifactId 目录名 Module 名IDEA例如mobilecom-admin/ artifactId: mobilecom-admin Module: mobilecom-admin2、展示名称用namename移动通信后台服务/name七、总结IDEA 的 Module 是“开发视角”Maven 的 artifactId 是“构建视角”而module只是“路径”。改名字本质上不是“改一个地方”而是要同时修改路径、引用关系、构建坐标。