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目录变文件夹内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现ORM操作MySQL的几种方法

    SpringBoot实现ORM操作MySQL的几种方法

    本文主要介绍了SpringBoot实现ORM操作MySQL的几种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Java+swing实现抖音上的表白程序详解

    Java+swing实现抖音上的表白程序详解

    这篇文章主要为大家详细介绍了如何利用Java swing实现抖音上的表白程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • jsp如何获取Session中的值

    jsp如何获取Session中的值

    这篇文章主要介绍了jsp如何获取Session中的值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringBoot中使用MongoDB的连接池配置全过程

    SpringBoot中使用MongoDB的连接池配置全过程

    这篇文章主要介绍了SpringBoot中使用MongoDB的连接池配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • MybatisPlus使用注解的多对多级联查询方式

    MybatisPlus使用注解的多对多级联查询方式

    这篇文章主要介绍了MybatisPlus使用注解的多对多级联查询方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 详解Java项目中读取properties文件

    详解Java项目中读取properties文件

    本篇文章主要介绍了Java项目中读取properties文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • java的if else语句入门指南(推荐)

    java的if else语句入门指南(推荐)

    下面小编就为大家带来一篇java的if else语句入门指南(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Java 8对LinkedList元素进行排序的方法详解

    Java 8对LinkedList元素进行排序的方法详解

    在Java中,LinkedList是一种基于链表的数据结构,与ArrayList相比,它在进行插入和删除操作时表现出更好的性能,然而,LinkedList的元素排序也是开发中常见的需求之一,本文介绍了Java8对LinkedList元素进行排序的方法,需要的朋友可以参考下
    2024-11-11
  • 一文带你学会Java网络编程

    一文带你学会Java网络编程

    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。这篇文章将带大家深入了解一下Java的网络编程,需要的可以了解一下
    2022-08-08
  • 解决IDEA创建maven项目时pom.xml没有变蓝的问题

    解决IDEA创建maven项目时pom.xml没有变蓝的问题

    这篇文章主要介绍了解决IDEA创建maven项目时pom.xml没有变蓝的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论