ideaWeb项目打包后的target文件夹中因为多级目录折叠导致mapper.xml文件不在正确的dao文件夹

ideaWeb项目源代码中,接口和mapper是写在src/main/java目录下同一dao文件夹里的,如下图所示

img

为了能加载到src/main/java目录下的.xml文件,也在pom.xml中写了如下代码
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

但是打包后的target文件夹中,.xml文件和接口文件竟然是在两处:mapper.xml文件在多级目录折叠下,接口文件在目录展开下,如下图所示

img

这样运行之后会报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
尝试解决:手动把target中的.xml拖到正确的dao中
虽然这样能正确运行了,但是我想要达到的结果是:.xml能自动出现在target中正确的dao下,和接口文件在一个dao下
请问如何解决?

很少见你这样写的,一般需要给映射文件配置路径,如果不配置映射文件的路径,默认就是在当前文件夹下找对应的xml文件,所以说你没必要在pom.xml配置映射了,通常情况下dao只放接口文件不放xml文件,xml统一放在resources文件夹下,mybatis里配置好路径就行了,解析的时候他们是在一起的,如图所示

img

img

maven项目的目录结构就是这样的,不需要在pom.xml文件里面配置。