解决IDEA中maven工程不能读取resources目录中等配置文件的问题(详细)

31 篇文章 2 订阅
31 篇文章 2 订阅

当我们在maven项目中使用Mybatis的时候,需要给Mybatis配置核心xml文件(MyBatis-Config.xml)和映射文件(XxxMapper.xml),一般我们把映射文件和mapper(也就是dao层)放在同一层目录下。

        但是在idea中创建maven项目的时候,会出现无法读取到mapper目录下对应的mapper.xml文件(因为项目在编译java目录下的文件时只会去编译.java文件);以下提供了两种解决问题的方法:

      第一种:先在src/main/resources目录下创建和src/main/java目录下相同的目录结构(保持项目整体结构的清晰),然后将mapper.xml文件移动到resources目录下相应的目录中,就可以解决了。(建议使用,因为在真正项目开发中,配置文件和.java文件不会放在一起,都是分开放的,这样便于管理)

  原理:项目在编译完java和resources两目录下的所有文件后,会将两目录下的代码都整合到target目录中去,其实项目真正执行的是target目录下的代码,而java目录和resources目录相当于两个根目录,当两个目录的资源被整合到target中时,两目录拥有相同的目录结构,这样mapper.xml在target目录中就会被放到mapper(也就是dao层)目录下。

  第二种:只需要将如下代码直接复制到pom.xml文件下即可。(这种是通过修改maven默认导入配置文件的行为)

<build>
    <!--扫描到java和resources下的xml等资源文件-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
           <include>**/*.xml</include>
           <include>**/*.xml</include>
           <include>**/*.tld</include>
        </includes>
          <!--这里写成true会造成编译注释错误-->
        <filtering>false</filtering>
      </resource>
      
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
         <!--这里写成true会造成编译注释错误-->
        <filtering>false</filtering>
      </resource>
      
    </resources>
</build>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值