Maven 项目中 src/main/java 目录下的 xml 文件没有被编译

本文将介绍怎样解决 Maven 项目中 src/main/java 目录下的 xml 文件没有被编译到 classes 目录下面。

背景

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

我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习。 —— 列宁
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号