maven构建MyBatis项目中的一个注意事项(mapper开发中需要的)

1. 首先了解下maven项目中的目录结构

在正常的开发中,会自动构建相应的文件夹并存放相应的文件。这样在执行mvn compile指令后,才会将对应文件夹下的对应文件给输出到target目录中。例如:按照上图的目录结构构建的一个MyBatisDemo工程,文件的存放路径如下

然后执行compile指令,会生成target目录,其中的classes文件夹也就是我们最终的所要部署的目录文件结构(如果执行的是package命令,则会把classes打包成jar文件),其文件结构如下。可以看到,maven会自动帮我们把在resources目录下的配置文件给加入到输出的classes文件夹下。同时test文件夹下的所有东西都不会出现在target目录下。

2.在MyBatis开发中遇到的一个问题

使用MyBatis开发的过程中,一般不会使用DAO进行开发,而会使用Mapper接口进行开发,一般要求Mapper接口与Mapper的xml配置文件处于同一级里。

如果还是以前的目录结构,配置文件都放在resources下的话,就会出现找不到Mapper.xml文件的异常。因为maven在执行compile的时候,如果在java文件夹下发现了除了.java文件以外的东西,例如UserMapper.xml,就不会把该文件输出到classes文件夹中,所以在运行的时候会报IOException,也就是找不到UserMapper.xml文件。

3. 配置pom.xml解决该问题

要解决该问题,就是要使maven在compile时,想将Mapper.xml文件和Mapper接口放在一起,故将src/main/java添加到资源搜索目录即可。

<build>
	<resources>
      <resource>
        <!-- 由于想将Mapper.xml文件和Mapper接口放在一起,
             故将src/main/java添加到资源搜索目录  -->
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <!-- 原有的src/main/resources也要添加到资源搜索目录,可以省略-->
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
</build>
复制代码

这样在compile之后,java文件夹下的xml文件也会被打包到classes文件夹下,找不到UserMapper.xml的问题成功解决。

转载于:https://juejin.im/post/5c726b13f265da2da955bb5c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值