今天使用idea导入项目的时候出现了Xxx is not mapped 错误,但是在eclipse运行的时候又是正常的,后来发现编译后的target文件中没有使hiberante配置的xml文件,所以对pom.xml文件进行了修改。 原因:IDEA的maven项目中,默认源代码目录下(src/main/java
目录)的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹。在使用maven进行模块开发时,会将配置文件xml放到dao层,idea打包时只会打包java文件,会将一些mapper映射文件或者properties文件给过滤掉,部署的时候会报找不到mapper配置文件等错误,解决方法是在pom文件中增加如下配置:
<build>
<!--配置打包时不过滤非java文件开始 -->
<!--说明,在进行模块化开发打jar包时,maven会将非java文件过滤掉,
xml,properties配置文件等,但是这些文件又是必需的,
使用此配置可以在打包时将不会过滤这些必需的配置文件。
-->
<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>
<!--配置打包时不过滤非java文件结束 -->
</build>