问题:项目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