在 IntelliJ IDEA 中,若 Module A 依賴 Module B,IDE 會遵循以下默認規則:
這種設計符合「生產代碼不應依賴測試代碼」的工程原則。
若需將某 Library 打包進 Artifact(如 WAR/JAR),該 Library 的層級必須為 Project Level 或更高(即 Global Level、Module Level 不夠)。
將 Library 中的類、文件夾或歸檔內文件標記為 Exclude 後:
官方說明:「這樣做的目的是為了讓 IDE 更加流暢」。若需真正排除,請調整構建腳本或依賴範圍。
Analyze → Cycle Dependencies 檢測compile、test、provided、runtime 嚴格區分Maven → Reload Project 或 Gradle Sync 同步| 現象 | 可能原因 | 解決方案 |
|---|---|---|
| 編譯報找不到符號 | 依賴範圍為 test / provided | 調整為 compile 或 implementation |
| 運行時 ClassNotFoundException | Library 非 Project Level | 在 Project Structure → Libraries 調整層級 |
| IDE 提示紅字但能編譯運行 | 索引損壞 / Exclude 誤標 | File → Invalidate Caches / Restart |
掌握 IDEA Module 依賴機制,能讓多模組專案結構清晰、構建穩定、開發體驗流暢。