原文鏈接:這里
0.前言
調試IDEA+maven+mybatis時遇到的一個奇葩錯誤,
java.io.IOException: Could not find resources mybaits-config.xml
這個錯誤的意思是沒有讀取到mybatis配置文件。按照這個報錯去百度了一堆答案都沒有正常解決。最終在大神的提醒下發現了問題所在,記錄下來解決方法,以共參考。
出錯的代碼:
文件位置:

在此之前已經嘗試過使用路徑直接鎖定mybatis-config.xml文件的位置發現不行。
1.解決辦法
按照百度給的一些答案,整理一下,主要報錯是意思是”沒有找到xml配置文件“
有個比較直觀的方法看是否可用,就是看target文件夾下classes有沒有生成配置文件,如果有標識能夠讀取,如果沒有表示不能讀取。下面任何一種方法如果不能在target中 生成我們的配置文件,基本可用判斷讀取文件失敗。

另外,每種辦法試過以后都建議使用 clean、build指令,甚至重啟IDEA(我最后改的就是重啟后才好用的)
注:已經嘗試過直接將mybatis-config.xml文件復制到classes文件夾下直接運行測試程序,這個發現是正常的(前提是你的數據庫配置都正確),說明還是配置的一些問題導致沒有正常生成mybatis-config.xml文件。
解決方法一:沒有正確設置資源文件夾導致沒有讀取成功。IDEA不會去讀取任意文件夾里面是配置文件,你必須告訴它配置文件在哪。本文的配置文件在src/main/resources里面的,這種情況是你沒有正確配置資源目錄導致不識別的,解決方法比較簡單。右擊resources文件夾,選擇”標記目錄“,選擇標記為”資源跟“(如果是資源根就不能標記)。然后執行clean、build(右上角的小錘子或ctrl+F9)。最后執行test測試看下是否正常。
注:次方法對我沒有作用

解決辦法二:修改pom文件。我們可用在pom文件中指定資源目錄,在pom文件中添加如下代碼:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
然后重新clean、build,甚至是重新啟動IDEA,看是否正常。
注:此方法對我也沒有用。
解決方法三:在我百思不得其解的情況下,在大神的提示下,終於找到了問題所在。問題還是出在pom文件中。
在創建子模塊的時候引入了這個坐標,但是這個測試程序就一個模塊,測試文件也就一個,而且后來我把子模塊刪了,留了一個在這,外部如果這樣的話表示不會在外部生成東西。所以有兩個辦法,一個是改成
<packaging>jar</packaging>
一個是直接刪除掉這一行。
果然,刪除掉這一行,重啟IDEA,clean,build后,然后就發現target下面的classes下面果然出現了mybatis-config.xml文件,測試也正常。