1. 概述
本教程介绍resources插件,它是Maven构建工具的核心插件之一。
有关其他核心插件的概述,请参阅本文。
2. 插件目标
resources插件将文件从输入资源复制目录到输出目录,这个插件有三个目标,它们的不同之处仅在于如何指定资源和输出目录。
这个插件的三个目标是:
- resources:将作为主要源代码一部分的资源复制到主要输出目录
- testResources:将作为测试源代码一部分的资源复制到测试输出目录
- copy-resources:将任意资源文件复制到输出目录,需要我们指定输入文件和输出目录
让我们看一下pom.xml中的resources插件:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
...
</configuration>
</plugin>
我们可以在这里找到这个插件的最新版本。
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>
该配置适用于resources插件的所有执行。
例如,当使用命令mvn resources:resources
执行此插件的resources目标时,input-resources目录中的所有资源(PNG文件除外)将被复制到output-resources。
由于默认情况下resources目标绑定到Maven默认生命周期中的process-resources阶段,因此我们可以通过运行命令mvn process-resources
来执行这个目标和所有前面的阶段。
在给定的配置中,有一个名为<filtering>的参数,其值为true,filtering参数用于替换资源文件中的占位符变量。
例如,如果我们在POM中有一个属性:
<properties>
<resources.name>Tuyucheng</resources.name>
</properties>
其中一个资源文件包含:
Welcome to ${resources.name}!
然后将在输出资源中计算变量,生成的文件将包含:
Welcome to Tuyucheng!
4. 总结
在这篇简短的文章中,我们介绍了resources插件并给出了使用和自定义它的说明。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章