1. 概述
本教程将深入探讨 Maven 构建工具的核心插件之一:resources 插件。关于其他核心插件的概述,可参考这篇文章。
2. 插件目标
resources 插件的核心功能是将资源文件从输入目录复制到输出目录。该插件包含三个目标,主要区别在于资源和输出目录的指定方式:
✅ resources
- 复制主源码关联的资源到主输出目录
✅ testResources
- 复制测试源码关联的资源到测试输出目录
✅ copy-resources
- 任意资源文件复制到指定目录,需手动配置输入/输出路径
插件基础配置示例:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
...
</configuration>
</plugin>
最新版本可查阅Maven 中央仓库
3. 实战示例
假设需求:将 input-resources
目录下的资源复制到 output-resources
,并排除所有 .png
文件。配置如下:
<configuration>
<outputDirectory>output-resources</outputDirectory>
<resources>
<resource>
<directory>input-resources</directory>
<excludes>
<exclude>*.png</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
执行命令 mvn resources:resources
时:
- 所有非
.png
文件从input-resources
复制到output-resources
- 该目标默认绑定到 Maven 生命周期的
process-resources
阶段,可通过mvn process-resources
触发
⚠️ 关键参数解析filtering=true
启用变量替换功能。例如:
POM 中定义属性:
<properties>
<resources.name>Baeldung</resources.name>
</properties>
资源文件包含占位符:
Welcome to ${resources.name}!
输出结果自动解析为:
Welcome to Baeldung!
4. 总结
本文系统讲解了 resources 插件的三大目标及实战配置技巧。通过合理运用 filtering
和资源过滤功能,可高效管理项目资源文件。
完整示例代码请查阅GitHub 仓库。