您的位置:首页 > 其它

maven 插件_2 Maven Resources Plugin

2016-01-07 10:43 141 查看
http://maven.apache.org/plugins/maven-resources-plugin/resource插件对资源文件编码处理,资源文件目录指定,资源文件拷贝等功能,最后将资源文件拷贝到一个目录默认执行方法: mvn resources:resources 如果是copy-resources:执行方法: mvn resources:copy-resources执行后,将资源文件拷贝到target/classes中The Resources Plugin has three goals:resources:resources 拷贝\src\main\resources文件到输出目录此goal默认是绑定process-resources life-cycle phaseresources:testResources 拷贝\src\test\resources文件到输出目录此goal默认是绑定process-resources life-cycle phase   resources:copy-resources copiesresources to an output directory.This goal requires that you configure the resources to be copied, and specify the outputDirectory1. 指定资源文件编码方式
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
2. 指定资源文件路径默认情况资源文件路径: src\main\resources。可以在effective pom 中 resources配置的路径看到哦现在我们指定资源路径,就不适用默认的src/main/resource了,可以指定多个资源路径,directory的路径以pom.xml所以路径相对的例如:
Project
|-- pom.xml
`-- src
`-- my-resources
如下配置
<resources>
<resource>
<directory>src/my-resources</directory>
</resource>
</resources>
多个资源路径:<build>
<resources>
<resource>
<directory>resource1</directory>
</resource>
<resource>
<directory>resource2</directory>
</resource>
<resource>
<directory>resource3</directory>
</resource>
</resources>
</build>3. include/exclude 资源文件和目录

<build>
...
<resources>
<resource>
<directory>src/my-resources</directory>
<includes>
<include>**/*.txt</include>
</includes>
<excludes>
<exclude>**/*test*.*</exclude>
<exclude>**/*.jpeg</exclude>
</excludes> </resource> ... </resources> ... </build>4. 执行mvn resources:resources将文件默认拷贝到target/classes中,指定拷贝到的目录设置: <outputDirectory></outputDirectory><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><outputDirectory>${basedir}/target</outputDirectory><encoding>UTF-8</encoding></configuration></plugin>也可以放在 <build><outputDirectory>${basedir}/target</outputDirectory></build>查看effective pom 里面可以看到哦5. fliter 使用: 资源文件可以使用变量,通过filter处理变量 ${}
加上: <filtering>true</filtering>,才对此资源目录下的文件中${} 进行处理。
如果不加filtering,则此文件${}不会处理哦
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>

那么${}中的值可以有3中方式

举例: 资源文件中有${name} 和${age} 1> 
mvn resources:resources -Dname="world" -Dage="12"
2>
<project>
...
<properties>
<name>world</name>
<age>12</age>
</properties> ...</project>
3> 放在文件里面
<build>
...
<filters>
<filter>
my-filter-values.properties
</filter> </filters> ... </build>
my-filter-values.properties 文件内容:
name=world
age=12
6. copy resources 拷贝文件 
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- 可以是其他阶段-->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
执行:mvn validate 。执行validate阶段时会操作copy。
对不同环境无法通过此方式来拷贝不同环境的文件。所以建议使用war中的

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: