最近在学习 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 目录下。