使用maven打包时mapper.xml文件没有被打到target文件中去的问题

问题背景:当程序运行时,有些方法用到了mapper.xml文件中sql语句时,若maven打包时没有将mapper.xml打到target文件中时,程序会报错。
图片1

一次打包发现target文件的classes文件中没有mapper.xml文件,检查pom.xml文件的编译配置看看是否指定了编译resources文件夹下所有文件,检查了是加了的。虽然mapper.xml文件没有被打包,但是resources文件夹下yml文件被打包了。

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <!--包含文件夹以及子文件夹下所有资源-->
          <include>**/*.*</include>
        </includes>
      </resource>
    </resources>
  </build>

图片2

怀疑是不是pom文件中的build写的有问题,将mapper文件移除文件夹直接放入resources文件下打包,发现mapper文件被成功打包了。
图片3

pom文件的build写的没有问题,此时怀疑是否同名同路径的问题。java文件夹下有/org/mapper路径,resources文件夹下也有/org/mapper的路径。此时将resources文件夹下创建了个mappers目录,将/org/mapper文件夹放入其中,打包后mapper文件被成功打包到target的classes文件中,其mapper文件的完整目录也在其中。
图片4

总结:遇到resources下的文件没有成功打包时,一检查pom文件build配置,二检查是文件路径是否与src/main/java下的路径一致了。

记得application.yml或application.properties文件中指定mapper文件所在位置。

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台sql日志输出
  global-config:
    db-config:
      logic-delete-field: deleted # 逻辑删除
      logic-delete-value: 1
      logic-not-delete-value: 0
  mapper-locations: classpath:mappers/**/*.xml # mapper文件所在路径

#mybatis:
#  mapper-locations: classpath:mappers/**/*.xml
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值