为何IntelliJ会在ConsoleApp的Java文件旁标注[DesktopApp]模块名?
IntelliJ IDEA 编辑器文件名旁显示的[模块名]后缀,是用来标识当前文件所属的项目模块的。ConsoleApp 下的文件被标记为[DesktopApp]和两个模块是否存在依赖没有关联,属于 IDEA 的模块识别或缓存异常导致,常见原因和对应修复方案如下:
- 模块内容根配置错误
过往手动操作或者 IDEA 异常识别,可能误将 ConsoleApp 的源码目录同时添加到了 DesktopApp 模块的内容根中。
修复路径:打开File > Project Structure > Modules,选中 DesktopApp 模块切换到 Sources 标签,检查右侧内容根列表,如果存在 ConsoleApp 相关的目录条目,选中后点击上方减号删除,保存配置即可。 - Maven 项目缓存损坏
IDEA 本地存储的 Maven 索引、项目结构缓存出现损坏,会导致模块归属识别错乱。
修复路径:先点击右侧边栏 Maven 面板的刷新按钮,重新加载所有 Maven 项目;如果没有效果,点击File > Invalidate Caches...,勾选「Clear file system cache and local history」后重启 IDEA 重新索引项目。 - 子模块加载顺序异常
父 pom 的<modules>列表中 DesktopApp 声明顺序在 ConsoleApp 之前,极少数场景下 IDEA 识别同父工程、同 groupId 的子模块时,会把后加载的模块的源码误归属到先加载的模块下。
修复路径:临时调整父 pom 中<modules>的顺序,把 ConsoleApp 放到 DesktopApp 前面,刷新 Maven 项目确认标记正常后,再把顺序改回去即可。 - 本地项目配置文件错乱
如果上述操作都没有效果,说明项目根目录下的 .idea 配置文件夹、子模块的 .iml 配置文件内容出错。
修复路径:关闭 IDEA,删除项目根目录的 .idea 文件夹、所有子模块根目录下的 .iml 文件,重新打开项目让 IDEA 重新导入 Maven 结构即可。
内容的提问来源于stack exchange,提问作者Tony Borchert
相关产品推荐
相关产品推荐

