前言
近段時間從eclipse轉爲idea,雖然說這只是個工具,但畢竟是兩個不一樣的工具,多多少少會踩到一些坑。下面這個是在idea創建了maven項目之後,把mybatis整合進來後測試發現報以下錯誤:
看報錯分析應該是mapper文件沒有找到,這個可能是加載mapper文件的路徑寫錯了,看下項目結構如下:
按道理這個xml文件和接口同名而且在同一個目錄是沒問題(在eclipse中是絕對沒問題的),我的路徑也沒錯,但是運行就是報錯了,查閱資料後得知有如下情況:
idea在build工程的時候 遇到maven項目 使用的是pom文件裏面配置的<build></build>裏面的東西,而這裏面如果不做特別配置 是maven默認的 編譯的時候 只搬運src/main/java裏面的java文件到target/classes,其他文件會被忽略。爲什麼在eclipse裏面 即使pom不做這個特別配置 也沒問題 原因是eclipse在build工程的時候 不依賴 maven的pom文件 用的eclipse的編譯機制 不會忽略源碼文件夾裏面的xml文件。
解決辦法:
就是將IDEA maven項目中src源代碼下的xml等資源文件編譯進classes文件夾,在pom.xml文件裏面加入如下代碼
//具體操作方法就是:配置maven的pom文件配置,在<build>節點下添加<resources>代碼:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>