invalid bound statement (not found):xxxMapper.insert

本文分析了在容器云中使用mvn clean package命令打包项目时,出现mapper.xml文件找不到的问题,而本地使用Eclipse的clean project则没有此问题。问题关键在于Eclipse自动编译会处理.java文件对应的.xml文件,而mvn clean package默认不包含src/main/java目录下的.xml文件。解决方案是在pom.xml中添加resources配置或移动.xml文件到src/main/resources路径。深入理解mvn clean package的打包原理,有助于避免类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:项目jar包在容器云报错:invalid bound statement (not found):xxxMapper.insert,但是本地项目运行没问题
分析步骤:
1.从报错描述看,问题很明显是找不到对应的mapper.xml文件
2.寻找差异点:查看容器云生成jar包命令是用的:mav clean package. 但是本地是使用eclipse的clean project命令自动编译的。查看eclipse-navigator模式,eclipse 自带的clean package能自动编译出对应的.xml文件,但是本地执行mvn clean package之后,.xml文件消失
3.这个问题通过在.pom文件添加 resources指定代码层的.xml路径解决,也可以将项目的.xml文件移动到src/main/resources路径下解决。主要探讨下 clean package与mvn clean package的原理区别:
1.eclipse的clean project命令自动编译:是直接将java文件对应的编译成.class文件,并放到对应的目录下
2.mvn package:maven认为src/main/java只是java的源代码路径,所以在这个目录下的xml文件不会被打包成功

mvn打包原理可参考:
https://www.cnblogs.com/clover-forever/p/12556020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值