-
一般maven项目,dao的mapper映射文件会映射在resources下,创建同包同名的xml,这样是没问题的
-
如下图:如果想在这个地方放xml,就找不到mapper映射文件了
-
可以查看项目下的\target\classes的映射文件,这我就不展示了
-
解决方法
-
在pom.xml的build里添加
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<!-- 如果不添加此节点,mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
-
注意:
-
刷新一下maven,然后clean,install一下,启动项目
-
我启动项目报错了,不知道你们会不会,报错显示找不到spring_mvc.xml
-
我想大概是之前默认映射是在resources目录下,修改映射路径过滤之后就找不到了
-
然后我又添加了一段映射路径,就不报错了
-
代码如下:
<build>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<!-- 如果不添加此节点,mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
- 以上是我自己的理解,当然是亲自测试过的
- 希望对你们有帮助