解决使用intellij idea开发MAVEN项目在target目录下不存在mapper.xml文件

在做spring+mybatiss时,自动扫描都配置正确了,却在运行时出现了如下错误。后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,

而没有xml文件,将对应的xml文件放到这个文件夹下运行就不会出现下面的错误。说明出现这个错误的原因是maven编译时没有将xml文件放进去。

对于MAVEN项目,Eclipse会自动把项目srcmainjava目录下的配置文件(.xml)和资源文件(.properties)搬运到target目录下,而intellij idea默认是不会帮我们做这件事的。

解决办法:

在pom.xml文件中加入以下配置:

<build>
...
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
...
</build>

这段代码的意思就是把src/main/java目录下所有的xml文件都包含进去,其中${basedir} 是MAVEN的内置变量,表示项目根目录。

同样,想包含其他什么文件,比如.properties文件,再加一个<include>标签类似的写法即可。

做了以上工作以后,再把项目“Reimport”(右键选中项目->Maven->Reimport)一下,启动服务器,调用Mapper接口便不会报错了,

而且target目录下对应的位置也有了mapper.xml文件。

原文地址:https://www.cnblogs.com/ethan-37/p/12723703.html