Spring Boot目錄變文件夾?3步解決!

在 Spring Boot 項目中,當你在 src/main/java 下看到目錄結構而不是包結構時,這通常是 IDE(如 IntelliJ IDEA)的顯示問題或項目配置問題。以下是原因和解決方案:


問題原因

  1. IDE 未正確識別 Java 源代碼根目錄

    • src/main/java 沒有被標記為 Sources Root(源代碼根目錄)
    • 導致 IDE 將其視為普通文件夾而非 Java 包結構
  2. 包名不符合 Java 規范

    • Java 包名要求全小寫字母(如 com.example
    • 如果目錄名包含大寫字母非法字符(如 SpringbootMybatisDay10A),IDE 可能不會識別為包
  3. 項目構建工具配置問題

    • Maven/Gradle 配置錯誤,未正確指定源代碼路徑

解決方案

方法 1:在 IDE 中標記源代碼根目錄(推薦)

以 IntelliJ IDEA 為例:

  1. 右鍵點擊 src/main/java 目錄
  2. 選擇 Mark Directory as → Sources Root
    Project
    └── src└── main├── java       [Mark as Sources Root]  ?└── resources
    
  3. 刷新項目:IDE 會自動將目錄轉換為包結構
方法 2:修正包名(全小寫)
  1. 將包名改為全小寫(Java 規范要求):
    - com.shmily.springbootmybatisday10.mapper.SpringbootMybatisDay10A
    + com.shmily.springbootmybatisday10.mapper.springbootmybatisday10a
    
  2. 在 IDE 中重命名目錄:
    • 右鍵目錄 → Refactor → Rename
    • 使用全小寫格式(如 springbootmybatisday10a
方法 3:檢查 Maven 配置

確保 pom.xml 正確指定了源代碼目錄:

<build><sourceDirectory>src/main/java</sourceDirectory>
</build>
方法 4:重建項目結構

如果以上無效,手動創建包:

  1. src/main/java 下右鍵 → New → Package
  2. 按層級輸入包名(用 . 分隔):
    com.shmily.springbootmybatisday10.mapper
    
  3. IDE 會自動生成嵌套的包結構:
    src/main/java
    └── com└── shmily└── springbootmybatisday10└── mapper  [Package圖標]
    

預期效果 vs 錯誤效果

正確狀態(包)錯誤狀態(目錄)
顯示為 黃色圓點圖標 🟡顯示為 普通文件夾圖標 📁
可創建 Java 類文件無法直接創建 Java 類
包名用 . 分隔層級目錄名顯示完整路徑

預防措施

  1. 創建項目時使用正確命名
    • 在 Spring Initializr 中,使用全小寫的 Group 和 Artifact:
      Group: com.shmily
      Artifact: springbootmybatisday10
      
  2. 避免手動創建目錄
    • 始終通過 IDE 的 New → Package 創建包
  3. 檢查項目配置
    • 確保 src/main/java 是 Sources Root
    • 確保 src/test/java 是 Test Sources Root

💡 在 IntelliJ IDEA 中,黃色圖標表示 Java 包,藍色圖標表示普通目錄。通過正確標記 Sources Root,你的目錄結構會自動轉換為包結構。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88998.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88998.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88998.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Appium源碼深度解析:從驅動到架構

Appium源碼深度解析:從驅動到架構 Appium 源碼概覽 Appium 是一個開源的移動自動化測試框架,支持跨平臺(iOS、Android)和多種編程語言(Java、Python 等)。其源碼托管在 GitHub 上,主要由 JavaScript 和 Node.js 實現,核心邏輯圍繞客戶端-服務器架構設計。 GitHub 倉庫…

給 Excel 整列空格文字內容加上前綴:像給文字穿衣服一樣簡單!

目錄 步驟一&#xff1a;選中目標列 打開Excel表格并定位列點擊列標題選中整列 步驟二&#xff1a;輸入公式&#xff0c;變身“魔法” 在公式編輯欄輸入公式按下回車鍵查看效果 步驟三&#xff1a;向下填充&#xff0c;批量處理 鼠標定位到單元格右下角按住鼠標左鍵向下拖動填充…

Spring Boot 啟動原理揭秘:從 main 方法到自動裝配

Spring Boot 啟動原理揭秘&#xff1a;從 main 方法到自動裝配 引言 Spring Boot 作為 Java 領域最流行的開發框架之一&#xff0c;憑借其“開箱即用”的特性極大地簡化了 Spring 應用的搭建和部署。然而&#xff0c;盡管開發者在日常工作中頻繁使用 Spring Boot 的啟動類&…

OpenCV 與深度學習:從圖像分類到目標檢測技術

一、深度學習&#xff1a;從 “人工設計” 到 “自動學習”1.1 深度學習的定位&#xff1a;AI、機器學習與深度學習的關系人工智能&#xff08;AI&#xff09;&#xff1a;是一個寬泛的領域&#xff0c;目標是構建能模擬人類智能的系統&#xff0c;涵蓋推理、感知、決策等能力。…

Docker 鏡像推送至 Coding 制品倉庫超時問題排查與解決

Docker 鏡像推送至 Coding 制品倉庫超時問題排查與解決 在將 Docker 鏡像推送至 Coding 的制品倉庫時&#xff0c;可能會遇到 docker push 命令超時失敗的問題。但使用 curl -i http://xxx.coding.xxxx.xx 測試時&#xff0c;連接卻能成功建立。以下是排查過程及解決方案。 問題…

https交互原理

Https 交互時序圖&#xff1a;HTTPS 通信中結合 RSA 和 AES 加密的流程&#xff0c;本質是利用 RSA 的安全特性交換 AES 密鑰&#xff0c;再用高效的 AES 加密實際數據傳輸。HTTPS 交互核心流程&#xff08;TLS/SSL 握手&#xff09; 1. 建立 TCP 連接 客戶端通過 TCP 三次握手…

LSTM入門案例(時間序列預測)| pytorch實現

需求 假如我有一個時間序列&#xff0c;例如是前113天的價格數據&#xff08;訓練集&#xff09;&#xff0c;然后我希望借此預測后30天的數據&#xff08;測試集&#xff09;&#xff0c;實際上這143天的價格數據都已經有了。這里為了簡單&#xff0c;每一天的數據只有一個價…

WPS、Word加載項開發流程(免費最簡版本)

文章目錄1 加載項對比2 WPS 加載項2.1 本地開發2.1.1 準備開發環境2.1.2 新建 WPS 加載項項目2.1.3 運行項目2.2 在線部署2.2.1 編譯項目2.2.2 部署項目2.2.3 生成分發文件2.2.4 部署分發文件2.3 安裝加載項2.4 取消發布3 Word 加載項3.1 本地開發3.1.1 準備開發環境3.1.2 新建…

Flink SQL 性能優化實戰

最近我們組在大規模上線Flink SQL作業。首先&#xff0c;在進行跑批量初始化完歷史數據后&#xff0c;剩下的就是消費Kafka歷史數據進行追數了。但是發現某些作業的追數過程十分緩慢&#xff0c;要運行一晚上甚至三四天才能追上最新數據。由于是實時數倉指標計算上線初期&#…

HTML 樹結構(DOM)深入講解教程

一、HTML 樹結構的核心概念 1.1 DOM&#xff08;文檔對象模型&#xff09;的定義 DOM&#xff08;Document Object Model&#xff09;是 W3C 制定的標準接口&#xff0c;允許程序或腳本&#xff08;如 JavaScript&#xff09;動態訪問和更新 HTML/XML 文檔的內容、結構和樣式。…

用鼠標點擊終端窗口的時候出現:0;61;50M0;61;50M0;62;50M0

在做aws webrtc viewer拉流壓測的過程中&#xff0c;我本地打開了多個終端&#xff0c;用于連接EC2實例&#xff1a; 一個終端用于啟動 ‘并發master腳本’、監控master端的cpu、mem&#xff1b;一個終端用于監控master端的帶寬情況&#xff1b;一個終端用于監控viewer端的cpu、…

C++-linux 5.gdb調試工具

GDB調試工具 在C/C開發中&#xff0c;程序運行時的錯誤往往比編譯錯誤更難定位。GDB&#xff08;GNU Debugger&#xff09;是Linux環境下最強大的程序調試工具&#xff0c;能夠幫助開發者追蹤程序執行流程、查看變量狀態、定位內存錯誤等。本章將從基礎到進階&#xff0c;全面講…

Update~Read PLC for Chart ~ Log By Shift To be... Alarm AI Machine Learning

上圖~ 持續迭代 1、增加報警彈窗,具體到哪個值,雙邊規格具體是多少 2、實時顯示當前值的統計特征,Max Min AVG ... import tkinter as tk from tkinter import simpledialog import time import threading import queue import logging from datetime import datet…

es的自定義詞典和停用詞

在 Elasticsearch 中&#xff0c;自定義詞典是優化分詞效果的核心手段&#xff0c;尤其適用于中文或專業領域的文本處理。以下是關于 ES 自定義詞典的完整指南&#xff1a; 為什么需要自定義詞典&#xff1f; 默認分詞不足&#xff1a; ES 自帶的分詞器&#xff08;如 Standard…

微算法科技技術突破:用于前饋神經網絡的量子算法技術助力神經網絡變革

隨著量子計算和機器學習的迅猛發展&#xff0c;企業界正逐步邁向融合這兩大領域的新時代。在這一背景下&#xff0c;微算法科技&#xff08;NASDAQ:MLGO&#xff09;成功研發出一套用于前饋神經網絡的量子算法&#xff0c;突破了傳統神經網絡在訓練和評估中的性能瓶頸。這一創新…

一文讀懂循環神經網絡(RNN)—語言模型+讀取長序列數據(2)

目錄 讀取長序列數據 為什么需要 “讀取長序列數據”&#xff1f; 讀取長序列數據的核心方法 1. 滑動窗口&#xff08;Sliding Window&#xff09; 2. 分段截取&#xff08;Segmentation&#xff09; 3. 滾動生成&#xff08;Rolling Generation&#xff09; 4. 關鍵信息…

Oracle Virtualbox 虛擬機配置靜態IP

Oracle Virtualbox 虛擬機配置靜態IP VirtualBox的網卡&#xff0c;默認都是第一個不能自定義&#xff0c;后續新建的可以自定義。 新建NAT網卡、host主機模式網卡 依次點擊&#xff1a;管理->工具->網絡管理器新建host主機模式網卡 這個網卡的網段自定義&#xff0c;創建…

Linux RAID1 創建與配置實戰指南(mdadm)

Linux RAID1 創建與配置實戰指南&#xff08;mdadm&#xff09;一、RAID1 核心價值與實戰目標RAID1&#xff08;磁盤鏡像&#xff09; 通過數據冗余提供高可靠性&#xff1a;當單塊硬盤損壞時&#xff0c;數據不丟失支持快速陣列重建讀寫性能略低于單盤&#xff08;鏡像寫入開銷…

MySQL數據庫----函數

目錄函數1&#xff0c;字符串函數2&#xff0c;數值函數3&#xff0c;日期函數4&#xff0c;流程函數函數 1&#xff0c;字符串函數 MySQL中內置了很多字符串函數 2&#xff0c;數值函數 3&#xff0c;日期函數 4&#xff0c;流程函數

1.2 vue2(組合式API)的語法結構以及外部暴露

vue2 vue3中可以寫vue2的語法&#xff0c;vue2的結構像一個花盆里的根&#xff08;根組件App.vue&#xff09;&#xff0c;根上可以插上不同的枝杈和花朵&#xff08;組件&#xff09;。 組件的結構&#xff1a; // 這里寫邏輯行為 <script lang"ts"> export d…