該問題的實(shí)質(zhì)是,idea對classpath的規(guī)定。
在eclipse中,把資源文件放在src文件夾下,是可以找到的;
但是在idea中,直接把資源文件放在src文件夾下,如果不進(jìn)行設(shè)置,是不能被找到的。
下面說說幾種解決方法,網(wǎng)上說的都很混亂,我這里做一個總結(jié):推薦方法4
1.將所有資源文件放在resources文件夾下
這樣做很方便,比較容易想到,但是層次性就很差了,比如mybatis的映射配置文件mapper.xml,本來需要放在特定的包里面,與dao層,service層等層次為同一個層級,如今只能放在resource文件夾下,不方便分層;
2.如果該項(xiàng)目是maven項(xiàng)目:
配置maven的pom文件配置,在pom文件中找到<build>節(jié)點(diǎn),添加下列代碼:
- <build>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
- </build>
我嘗試過將directory修改為具體的放置配置文件的包,即修改成 src/main/java/lj/ncepu/mapperXML,然后<include>標(biāo)簽里面也做了很多修改和嘗試,始終無法訪問到配置文件;所以,直接使用上面這樣的配置就好;如果還是不能訪問,歡迎跟帖討論;如果你知道應(yīng)該怎么樣修改,也請跟帖討論,謝謝~
參考:將IDEA maven項(xiàng)目中src源代碼下的xml等資源文件編譯進(jìn)classes文件夾
3.將包含配置文件的包,mark directory as ... Resources:
直接右鍵點(diǎn)擊包 -> Mark Directory As ,你會發(fā)現(xiàn)只有一個exclude;怎么辦?
Project Structure -> Modules -> Sources -> 選擇包含配置文件的package -> Mark as -> 選擇第三個 Resources -> OK
參考:http://stackoverflow.com/questions/6104551/java-setting-classpath
4.將package添加到classpath里:
Project Struture -> Modules -> Dependencies -> "+" -> JARS or directories -> 選擇包
-> 彈出Choose Categories of Selected Files -> 選擇Classes -> OK
以上幾種方法是在IDEA開發(fā)環(huán)境中可以找到資源文件,但是具體打包發(fā)布是否會包含該資源文件還需具體測試。
我的測試結(jié)果是,4種方法均可以在發(fā)布時包含package中的xml文件。