最近在学习 MyBatis 时,为了在每个 demo 中都放置自己的 mybatis 配置信息。因此,将 mybatis 配置文件放到了 demo 包下面。项目结构如下:
- com.hxstrive.mybatis
- demo1
- mybatis-cfg.xml
- demo2
- mybatis-cfg.xml
- demo3
- mybatis-cfg.xml在使用 maven 打包后,发现在 classes\com\hxstrive\mybatis\demo1、classes\com\hxstrive\mybatis\demo2、classes\com\hxstrive\mybatis\demo1 目录下面不存在 mybatis-cfg.xml 文件。
Maven 默认只会将包下面的 class 文件编译后放到打包的 classes 目录下,如果你将配置文件放到 resources 目录也会打包到 classes 目录。我们可以通过配置 <resources> 标签的 <includes> 标签来主动指出,那些类型的文件需要打包。配置如下:
<build>
...
<resources>
<!--编译src/main/java目录下的xml文件-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.class</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
...
</build>上面配置文件中指出,将 src/main/java 下面的所有 class 和 xml 文件打包到 classes 目录下。