解决Intellij IDEA 中src下xml等资源文件没法读取的问题

该问题的实质是,idea对classpath的规定。java

在eclipse中,把资源文件放在src文件夹下,是能够找到的;mybatis

可是在idea中,直接把资源文件放在src文件夹下,若是不进行设置,是不能被找到的。app

下面说说几种解决方法,网上说的都很混乱,我这里作一个总结:推荐方法4eclipse

一、将资源文件放在resource目录下。maven

这样作很方便,比较容易想到,可是层次性就不好了,好比mybatis的映射配置文件mapper.xml,原本须要放在特定的包里面,与dao层,service层等层次为同一个层级,现在只能放在resource文件夹下,不方便分层;ide

2.若是该项目是maven项目:测试

配置maven的pom文件配置,在pom文件中找到<build>节点,添加下列代码:ui

<build>
   <resources>
      <resource>
         <directory>src/main/java</directory>
             <includes>
                <include>**/*.xml</include>
            </includes>
         </resource>
    </resources>
</build>

我尝试过将directory修改成具体的放置配置文件的包,即修改为 src/main/java/lj/necpu/mapperXML,而后<include>标签里面也作了不少修改和 尝试,始终没法访问到配置文件;idea

因此,直接使用上面这样的配置就好;若是仍是不能访问,欢迎跟帖讨论;若是你知道应该怎么样修改,也请跟帖讨论,谢谢~spa

3.将包含配置文件的包,mark directory as ... Resources:

直接右键点击包 -> Mark Directory As ,你会发现只有一个exclude;怎么办?

Project Structure -> Modules -> Sources -> 选择包含配置文件的package -> Mark as -> 选择第三个 Resources -> OK

4.将package添加到classpath里:

Project Struture -> Modules -> Dependencies -> "+" -> JARS or directories -> 选择包 

-> 弹出Choose Categories of Selected Files -> 选择Classes -> OK

以上几种方法是在IDEA开发环境中能够找到资源文件,可是具体打包发布是否会包含该资源文件还需具体测试。

个人测试结果是,4种方法都可以在发布时包含package中的xml文件。

相关文章
相关标签/搜索