刚开始学习Maven,学习过程中遇到了很多问题,尤其是使用Eclipse创建Maven工程,真TM蛋疼。。。
按照网上的教程创建了一个Maven项目,看一下项目结构:
请注意,我的配置文件没有放到src/main/resource文件夹下。
结果运行之后就会报错:
org.hibernate.MappingNotFoundException: resource:**.hbm.xml not found。
网上查了半天资料,原来对于Maven工程,编译的工作是由Maven程序来完成的,而Maven默认只会把src/main/resources文件夹下的文件拷贝到target/classes文件夹下,所以上图中用红框框起来的.hbm.xml都不会被复制到/target/calsses文件夹下,所以Hibernate框架在运行的时候,就会报找不到*.hbm.xml的错误。
解决方案:
在pom.xml中显式地告诉Maven把什么资源文件复制到target/classes文件夹下。
如下代码:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
相关问题:Maven项目编译后class文件没有.xml文件问题。
时间: 2024-10-13 19:52:12