今天遇到一个很坑爹的错误,用idea启动一个mybatis项目,一直报错java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for 刚开始以为是xml文件写错了,但是新down的代码,应该不会有这样的错误,而且其他人都可以启动,排查了好长时间,发现idea下面编译项目后,xml文件没有被编译进去,然后进一步搜索,发现是
Idea在编译的时候,如果配置文件不是放在Resources文件夹下就不会被执行编译,导致运行时找不到的问题。所以按照上面的说法,我找到了两种解决办法,第一种是新建一个resource文件夹,将xml放在这个文件夹下面,然后将该文件夹在IDEA里面设置为resource文件即可,但是这种方法并不适合我,因为项目代码已经很多了,很多人都在用,无法改变整体结构,然后再网上找到了第二种方法。就是在pom文件里面加一段配置文件,配置文件如下:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>加完,重新编译一下即可。