現象
執行 Project → Clean 後,項目報錯「找不到 ApplicationContext.xml」,運行拋出 `FileNotFoundException`。
根因分析
`Clean` 會刪除 `bin/`、`target/` 等編譯輸出目錄,隨後觸發增量構建。若構建過程中發生錯誤(編譯失敗、資源複製失敗、插件衝突),導致資源文件未能重新複製到輸出目錄,運行時自然找不到。
排查步驟
- 查看 Problems 視圖:是否有紅色編譯錯誤(如 Java 版本不匹配、依賴缺失、注解處理器報錯)?修復所有編譯錯誤後再次 Clean/Build。
- 確認資源文件位置:`ApplicationContext.xml` 應放在 `src/main/resources`(Maven)或 Source Folder 根目錄下,確保被視為資源參與編譯輸出。
- 檢查 Build Path → Resources:確保 `**/*.xml` 包含在輸出過濾器中,未被排除。
- Maven 項目執行:`mvn clean compile` 或 `mvn clean install -DskipTests` 強制全量構建,排除 Eclipse 增量構建 Bug。
- 目標目錄權限:輸出目錄是否被殺毒軟件鎖定、只讀、磁盤滿?
常見誤區
- 將配置文件放在 `WebContent/WEB-INF` 卻配置 `classpath:` 前綴——運行時類路徑不包含該目錄;
- 多模塊項目中,父模塊 Clean 導致子模塊資源未複製,需對具體模塊 Clean。
總結
「Clean 後找不到文件」本質是構建失敗導致資源未輸出。先看 Problems 視圖,再強制全量構建,通常能秒解。