IDEA文件出现java file outside of source root

目录

1.问题:

2.解决方法:

3.扩展:父子工程引入Module后报错

参考文献:


1.问题:

有时候打开Module,发现各级文件夹下的类不能正常使用,类前的符号(小咖啡杯)是红色的(红色表示这个类是不可编译文件)。类前红色咖啡杯符号如图1所示:

IDEA文件出现java file outside of source root

图1 类前红色咖啡杯符号

打开文件后显示文字“Java file is located outside of the module source root,so it won't be complied”,警告文字如图2所示:

IDEA文件出现java file outside of source root

图2 警告文字

2.解决方法:

单击Module所在的“java”文件夹(注意不要点到其它的文件夹了),然后右键,找到“Mark Directory as”,选择“Sources Root”,操作过程如图3所示:

IDEA文件出现java file outside of source root

图3 操作过程

然后就会发现类前面本来红色的“小咖啡”变成蓝色的“小C圈”,而且本来灰色的java文件夹也变成蓝色了,这样类就可以正常使用了。颜色变化如图4所示:

IDEA文件出现java file outside of source root

图4 颜色变化

3.扩展:父子工程引入Module后报错

对于父子工程,有时候因为各种需要,会选择直接复制他人优秀的Module作为子模块,但是引入之后会格格不入(报错啦,O(∩_∩)O) ,报错很大可能就跟子模块的“名字”有关。

比如引入Module“consumer1”,但父工程的pom.xml文件中并没有包含“consumer1”,那么引入的“consumer1”Module就会是一个灰色的文件夹(正常的Module应该是一个文件夹上有个蓝色小框框),不能正常使用。Module未被父工程pom.xml文件引入如图5所示:

IDEA文件出现java file outside of source root

图5 Module未被父工程pom.xml文件引入

解决方法一:

直接将“consumer1”引入父工程的pom.xml文件的,发现“consumer1”文件夹变成蓝色小框框了,然后就可以正常使用“consumer1”模块了,直接引入“consumer1”如图6所示:

IDEA文件出现java file outside of source root

图6 直接引入“consumer1”

解决方法二:

如果觉得“consumer1”这个名字不能传达自己的想法,或者不够文艺,总之不管怎样,想改个名字,此处假设将“consumer1”改为“consumer”。

单击“consumer1”文件夹,右键,选择“Refactor”,选择“Rename”,Rename操作如图7所示:

IDEA文件出现java file outside of source root

图7 Rename操作

输入自己想改的名字,然后点击“Refactor”,即可完成名字的修改,修改名字如图8所示:

IDEA文件出现java file outside of source root

图8 修改名字

但是修改完名字之后,发现“consumer1”文件夹确实改为了“consumer”文件夹,而且文件夹上有小蓝框,可以正常使用这个模块了,但是“consumer”后面跟着文字:“consumer1”,跟着文字:“consumer1”如图9所示:

IDEA文件出现java file outside of source root

图9 跟着文字:“consumer1”

不改其实也不影响使用,但假设想改的话,还是跟改名字一个套路:单击“consumer”文件夹,右键,选择“Refactor”,选择“Rename”,Rename操作如图10所示:

IDEA文件出现java file outside of source root

图10 Rename操作

但是发现多出来一个选项,就是让选择修改哪一个,上面一个“Rename directory”是修改文件夹名称的(跟第一次操作结果其实是一样的),本次选择下面一个“Rename module”,用于修改module名称,选择“Rename module”如图11所示:

IDEA文件出现java file outside of source root

图11 选择“Rename module”

将module由“consumer1”修改为“consumer”,然后单击“OK”,修改module名称如图12所示:

IDEA文件出现java file outside of source root

图12 修改module名称

最后,就大功告成了,“consumer1”消失了,“consumer1”消失如图13所示:

IDEA文件出现java file outside of source root

图13 “consumer1”消失

参考文献:

(下面两篇博文十分优秀,内容也更加充实,值得一看!)

idea报错-java file outside of source root_outside out source root-CSDN博客

IDEA复制项目Module出现java文件夹source root解决方法 - 知乎 (zhihu.com)

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4690.html

(0)
LomuLomu
上一篇 2024 年 12 月 28 日 下午1:30
下一篇 2024 年 12 月 28 日 下午2:31

相关推荐

  • o3 发布了,摔碎了码农的饭碗

    大家好,我是汤师爷~ 在 2024 年底,OpenAI 发布了最新推理模型 o3。o3模型相当炸裂,在世界级编程比赛中拿下第 175 名,打败 99.9% 的参赛者。AI 写代码都赶上顶级程序员了,程序员是不是要失业? 最近不少读者反馈,像 GitHub Copilot、Claude Sonnet 3.5、Cursor 等 AI 辅助编程工具,能让代码编写效…

    2025 年 1 月 12 日
    51400
  • 利用Java与GeoTools实现矢量边界自动生成地理网格的技术方案

    目录背景概述一、数据准备与实现原理1、矢量数据预处理2、网格生成技术原理二、具体编码实现1、获取Shapefile边界范围2、构建网格要素集合3、输出Shapefile文件三、成果检验与评估1、输出文件格式说明2、GIS软件验证方法四、技术总结与展望 背景概述 在数字地理信息处理领域,空间数据的转换与处理技术日益重要。矢量数据以其精确的空间表达能力广泛应用于…

    2025 年 5 月 19 日
    85700
  • 系统突遇百倍流量冲击?资深架构师的应对策略全解析

    “当你负责的核心系统某天突然面临百倍流量冲击,该如何紧急应对?”——这并非虚构场景,而是某科技公司面试中的真实考题。当候选人回答“简单扩容”时,面试官立即追问:“若资源不足或数据库崩溃呢?”瞬间暴露出技术方案的局限性。这类问题如同技术照妖镜,能精准检验工程师的系统性思维。仅靠“增加服务器”这类条件反射式的回答,往往暴露架构认知的短板。完整的解决方案需融合流量…

    2025 年 5 月 13 日
    25000
  • 双非二本,毕业一年多培训无果,拿到大厂 Offer

    大家好,我是R哥。 今天给大家分享一个逆袭的真实故事,本文的主人公小明(化名),小明是一名 2023 届往届生 ,毕业后因为种种原因,整整空档了一年多 。 小明的情况让我看了不禁感叹:“唉,这兄弟怎么搞啊的?这么年轻就躺平了? ”,毕竟,大家都知道,互联网行业的就业压力一年比一年大,稍微掉队,就可能被甩在后头,更别说还没就业就有这么长的空窗期。 然后,他选择…

    2025 年 1 月 15 日
    44300
  • 基于Java的世界时区自动计算及时间生成方法

    目录 前言 一、zoneinfo简介 1、zoneinfo是什么 2、zoneinfo有什么 二、在Java中进行时区转换 1、Java与zoneInfo 2、Java展示zoneInfo实例 3、Java获取时区ID 三、Java通过经纬度获取时区 1、通过经度求解偏移 2、通过偏移量计算时间 3、统一的处理算法 四、总结 前言 在全球化浪潮的推动下,IT…

    2024 年 12 月 27 日
    48500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信