启动老项目发生了关于mybatis的下面错误。xml文件里面的方法已经被读取。
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for TestMst.getById
经过一番排查,终于找到了原因。原来META-INF文件夹和src/test/resources下面的配置文件变成了src/test/resources下面的配置文件。目前还没找到根本的解决办法。暂定方法只能把META-INF文件夹和src/test/resources下面的配置文件再覆盖过去。
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
-----------------
2021/12/29
找到原因了。.settings/org.eclipse.wst.common.component文件里有以下设置。
根据参考文章所说的,当两个resources下都有要加载的同名资源时候,优先选择src/test/java下的资源。所以解决办法就是把后四行去掉就行了。
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
■参考
https://stackoverflow.com/questions/28118271/src-main-resources-file-overwritten-by-src-test-resources
https://blog.youkuaiyun.com/liangwenmail/article/details/72520523