maven资源管理
Maven 资源管理:配置文件过滤与 Web 资源处理
Maven 不仅能管理依赖,还能灵活处理项目资源文件(如配置文件、静态资源),通过资源过滤实现动态替换变量,适配不同环境。本文将详细介绍 Maven 资源管理的配置方法,包括普通资源过滤和 Web 项目资源处理。
资源管理的核心概念
资源文件指项目中除源码外的所有文件,如:
- 配置文件(
application.properties、log4j.xml)。 - 静态资源(CSS、JS、图片)。
- 模板文件(JSP、Thymeleaf 模板)。
Maven 通过 <resources> 和 <webResources> 配置资源的路径、过滤规则和输出位置,确保资源在构建过程中被正确处理(如变量替换、目录映射)。
普通资源文件过滤(非 Web 项目)
资源过滤(Filtering)是 Maven 的核心功能,用于将资源文件中的 ${属性名} 替换为 Maven 属性值(如自定义属性、环境变量)。
基本配置
在 pom.xml 的 <build> 中配置 <resources>,指定需要过滤的资源目录和规则:
<build>
<resources>
<!-- 主资源配置 -->
<resource>
<directory>src/main/resources</directory> <!-- 资源文件所在目录 -->
<filtering>true</filtering> <!-- 启用过滤(替换变量) -->
<includes> <!-- 仅处理以下文件 -->
<include>**/*.properties</include> <!-- 所有 .properties 文件 -->
<include>**/*.xml</include> <!-- 所有 .xml 文件 -->
</includes>
<excludes> <!-- 排除不需要处理的文件 -->
<exclude>**/*.txt</exclude> <!-- 不处理 .txt 文件 -->
</excludes>
<!-- 可选:指定输出目录(默认 target/classes) -->
<!-- <targetPath>BOOT-INF/classes</targetPath> -->
</resource>
<!-- 测试资源配置(类似主资源) -->
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
变量替换示例
定义 Maven 属性:
