SpringBoot目录变文件夹的原因和解决方案

 更新时间:2025年07月16日 09:02:57   作者:六七_Shmily  
在 Spring Boot 项目中,当你在 src/main/java 下看到目录结构而不是包结构时,这通常是 IDE(如 IntelliJ IDEA)的显示问题或项目配置问题,以下是原因和解决方案,需要的朋友可以参考下

问题原因

IDE 未正确识别 Java 源代码根目录

  • src/main/java 没有被标记为 Sources Root(源代码根目录)
  • 导致 IDE 将其视为普通文件夹而非 Java 包结构

包名不符合 Java 规范

  • Java 包名要求全小写字母(如 com.example
  • 如果目录名包含大写字母非法字符(如 SpringbootMybatisDay10A),IDE 可能不会识别为包

项目构建工具配置问题

  • Maven/Gradle 配置错误,未正确指定源代码路径

解决方案

方法 1:在 IDE 中标记源代码根目录(推荐)

以 IntelliJ IDEA 为例:

  • 右键点击 src/main/java 目录
  • 选择 Mark Directory as → Sources Root
Project
└── src
    └── main
        ├── java       [Mark as Sources Root]  ✅
        └── resources
  • 刷新项目:IDE 会自动将目录转换为包结构

方法 2:修正包名(全小写)

  • 将包名改为全小写(Java 规范要求):
- com.shmily.springbootmybatisday10.mapper.SpringbootMybatisDay10A
+ com.shmily.springbootmybatisday10.mapper.springbootmybatisday10a
  • 在 IDE 中重命名目录:
    • 右键目录 → Refactor → Rename
    • 使用全小写格式(如 springbootmybatisday10a

方法 3:检查 Maven 配置

确保 pom.xml 正确指定了源代码目录:

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
</build>

方法 4:重建项目结构

如果以上无效,手动创建包:

  • src/main/java 下右键 → New → Package
  • 按层级输入包名(用 . 分隔):
com.shmily.springbootmybatisday10.mapper
  • IDE 会自动生成嵌套的包结构:
src/main/java
└── com
    └── shmily
        └── springbootmybatisday10
            └── mapper  [Package图标]

预期效果 vs 错误效果

正确状态(包)错误状态(目录)
显示为 黄色圆点图标显示为 普通文件夹图标
可创建 Java 类文件无法直接创建 Java 类
包名用 . 分隔层级目录名显示完整路径

预防措施

  1. 创建项目时使用正确命名

在 Spring Initializr 中,使用全小写的 Group 和 Artifact:

Group: com.shmily
Artifact: springbootmybatisday10
  1. 避免手动创建目录
    • 始终通过 IDE 的 New → Package 创建包
  2. 检查项目配置
    • 确保 src/main/java 是 Sources Root
    • 确保 src/test/java 是 Test Sources Root

在 IntelliJ IDEA 中,黄色 图标表示 Java 包,蓝色 图标表示普通目录。通过正确标记 Sources Root,你的目录结构会自动转换为包结构。

到此这篇关于SpringBoot目录变文件夹的原因和解决方案的文章就介绍到这了,更多相关SpringBoot目录变文件夹内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 我从jdk1.8升级到jdk11所遇到的坑都有这些

    我从jdk1.8升级到jdk11所遇到的坑都有这些

    这篇文章主要介绍了从jdk1.8升级到jdk11将会遇到的一些坑,本文给大家分享解决方案对大家的学习或工作具有参考借鉴价值,对jdk1.8升级到jdk11相关知识感兴趣的朋友,快来看看吧
    2021-08-08
  • shiro+jwt登陆验证实现教程

    shiro+jwt登陆验证实现教程

    本文介绍了如何使用Shiro和JWT实现登录认证,并通过自定义Realm和过滤器来完成身份验证和授权,通过测试,展示了如何携带JWT令牌进行接口访问,并验证了其有效期
    2026-03-03
  • SpringBoot 把PageHelper分页信息返回给前端的方法步骤

    SpringBoot 把PageHelper分页信息返回给前端的方法步骤

    本文主要介绍了SpringBoot 把PageHelper分页信息返回给前端的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • SpringBoot多环境开发与日志小结

    SpringBoot多环境开发与日志小结

    这篇文章主要介绍了SpringBoot多环境开发与日志,下面给大家说一下如何基于多环境开发做配置独立管理,务必掌握,需要的朋友可以参考下
    2022-08-08
  • 关于Java中的顶层类修饰问题

    关于Java中的顶层类修饰问题

    这篇文章主要介绍了关于Java中的顶层类修饰问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Dwr3.0纯注解(纯Java Code配置)配置与应用浅析二之前端调用后端

    Dwr3.0纯注解(纯Java Code配置)配置与应用浅析二之前端调用后端

    我们讲到了后端纯Java Code的Dwr3配置,完全去掉了dwr.xml配置文件,但是对于使用注解的类却没有使用包扫描,而是在Servlet初始化参数的classes里面加入了我们的Service组件的声明暴露,对于这个问题需要后面我们再细细研究下这篇文章,主要分析介绍前端怎么直接调用后端
    2016-04-04
  • java按照模板导出pdf或word文件详细代码

    java按照模板导出pdf或word文件详细代码

    有时候业务中我们需要使用pdf模板生成一份pdf文件,下面这篇文章主要给大家介绍了关于java按照模板导出pdf或word文件的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-11-11
  • RocketMQ生产者调用start发送消息原理示例

    RocketMQ生产者调用start发送消息原理示例

    这篇文章主要为大家介绍了RocketMQ生产者调用start发送消息原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 浅谈springioc实例化bean的三个方法

    浅谈springioc实例化bean的三个方法

    下面小编就为大家带来一篇浅谈springioc实例化bean的三个方法。小编觉得挺不错的,现在就想给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • SpringBoot使用Thymeleaf自定义标签的实例代码

    SpringBoot使用Thymeleaf自定义标签的实例代码

    这篇文章主要介绍了SpringBoot使用Thymeleaf自定义标签的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论