1.知识回顾
idea的maven项目中,默认情况下,
- ①会将 src/main/java(源代码目录) 中的 .java文件 编译/发布到 target/classes 中,其他文件会被忽略。
- ②会将src/main/resources 中的的 配置文件 编译/发布到 target/classes 中。
2.产生的问题
这时会产生一个问题 :
如果src/main/java目录下有配置文件呢?
那必然是不会被编译到 target/classes 中的,这时可能会因此而产生一些bug!
如下图 在java目录下的 XxxMapper.xml配置文件则不会被编译且放入到 target/classes中
ps: 而在eclipse中就不存在这样的问题,eclipse中的 src目录 下的的xml等资源文件/配置文件在编译时会自动打包放入到classes文件夹中,因为eclipse编译build工程时,不依赖pom文件。
3.解决方法
在pom.xml文件中添加 如下配置 ,即可将 src/main/java下的 xml文件也进行编译且放入到target/classes目录中
<build>
<resources>
<!-- XxxMapper.xml文件在java目录下 -->
<resource>
<directory>src/main/java</directory>
<includes>
<!--指定src下的内容编译 / 将.xml文件进行编译且放入到 target/classes目录中-->
<include>**/*.xml</include>
</includes>
</resource>
<!-- 将src/main/resources的配置文件编译且放入到 target/classes目录中 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>