介绍
Resources是处理项目中资源文件的插件.maven把我们项目中的资源分成两个部分:main resource和test resource.
插件目标
resources:resources
拷贝main resources
到main output directory
.它绑定了process-resource
生命周期阶段,当执行compiler:compile
插件的时候就会执行该阶段.resources:testResources
拷贝test resources
到test output directory
.它绑定了process-test-resource
生命周期阶段,当执行surefire:test
插件的时候就会执行该阶段.resource:copy-resources
,手动拷贝资源到输出目录使用
1、指定resources插件的编码方式
<properties>
<!-- 编码方式 -->
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
2、maven中默认会从项目的src/main/resources目录下查找资源.如果要读取其他路径下的资源的文件,就需要在build
标签中指定资源的路径.
<buid>
<!-- 过滤器资源 -->
<filters>
<filter>filter-values.properties</filter>
</filters>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 如果资源文件中存在变量引用,是否替换资源中的变量
变量的来源:
1、<properties>标签中定义的变量
2、<build> 中定义的过滤器资源
-->
<filtering>true</filtering>
<!-- 需要包含的文件资源 -->
<includes>
<include>**/**</include>
</includes>
<!-- 需要排除的文件资源 -->
<excludes>
<exclude>**/*.jpg</exclude>
</excludes>
</resource>
</resources>
<testSourceDirectory>src/test/java</testSourceDirectory>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
<excludes>
<exclude>**/*.pdf</exclude>
</excludes>
</testResource>
</testResources>
</build>
3、如果资源目录下存在二进制文件,可以使用<configuration>
中使用<nonFilteredFileExtensions>
根据后缀来过滤。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<nonFilteredFileExtensions>pdf</nonFilteredFileExtensions>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
4、如果资源中的${}
字符不需要转义,需要在$
前加 \
,并且在<configuration>
里面使用<escapeString>
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<escapeString>\</escapeString>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>