命令行中带参数指定${}变量值

<build>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<plugins>

<!-- 资源文件拷贝插件,处理资源文件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

<configuration>

<encoding>UTF-8</encoding>

<nonFilteredFileExtensions>

<nonFilteredFileExtension>pdf</nonFilteredFileExtension>

<nonFilteredFileExtension>swf</nonFilteredFileExtension>

</nonFilteredFileExtensions>

</configuration>

</plugin>

</plugins>

</build>

Hello ${name}

jest.urls=${name}

(1)   执行mvn resources:resources -Dname="world"

è

Hello world

jest.urls=world

(2)   执行mvn install -Dname="world"

è

Hello world

jest.urls=world

Properties标签中指定${}变量值

<properties>

<name>my testname</name>

</properties>

<build>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<plugins>

<!-- 资源文件拷贝插件,处理资源文件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

<configuration>

<encoding>UTF-8</encoding>

<nonFilteredFileExtensions>

<nonFilteredFileExtension>pdf</nonFilteredFileExtension>

<nonFilteredFileExtension>swf</nonFilteredFileExtension>

</nonFilteredFileExtensions>

</configuration>

</plugin>

</plugins>

</build>

(1)   执行mvn resources:resources

è

Hello my test name

jest.urls=my testname

(2)   执行mvn install

è

Hello my test name

jest.urls=my testname

properties文件中用<filter>标签过滤

<build>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<filters>

<filter>src/main/resources/my-filter-values.properties</filter>

</filters>

<plugins>

<!-- 资源文件拷贝插件,处理资源文件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

<configuration>

<encoding>UTF-8</encoding>

<nonFilteredFileExtensions>

<nonFilteredFileExtension>pdf</nonFilteredFileExtension>

<nonFilteredFileExtension>swf</nonFilteredFileExtension>

</nonFilteredFileExtensions>

</configuration>

</plugin>

</plugins>

</build>

my-filter-values.properties

name=mytestingname

(1)   执行mvn resources:resources

è

Hello my testingname

jest.urls=my testingname

(2)   执行mvn install

è

Hello my testingname

jest.urls=my testingname

使用copy-resources copy

<build>

<plugins>

<plugin>

<artifactId>maven-resources-plugin</artifactId>

<version>3.1.0</version>

<executions>

<execution>

<id>copy-resources</id>

<!-- here the phase you need -->

<phase>validate</phase>

<goals>

<goal>copy-resources</goal>

</goals>

<configuration>

<outputDirectory>${basedir}/target/extra-resources</outputDirectory>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

</build>

(1)   执行mvn resources:resources

è

Hello my testingname

jest.urls=my testingname

排除文件

<project>

...

<name>MyResources Plugin Practice Project</name>

...

<build>

...

<resources>

<resource>

<directory>src/my-resources</directory>

<includes>

<include>**/*.txt</include>

</includes>

<excludes>

<exclude>**/*test*.*</exclude>

</excludes>

</resource>

...

</resources>

...

</build>

...

</project>

排除二进制文件

<project>

...

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.1.0</version>

<configuration>

...

<nonFilteredFileExtensions>

<nonFilteredFileExtension>pdf</nonFilteredFileExtension>

<nonFilteredFileExtension>swf</nonFilteredFileExtension>

</nonFilteredFileExtensions>

...

</configuration>

</plugin>

</plugins>

...

</build>

...

</project>

禁止过滤  使用<escapeString>

<properties>

<name>my test name</name>

</properties>

<build>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<plugins>

<!-- 资源文件拷贝插件,处理资源文件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

<configuration>

<escapeString>\</escapeString>

</configuration>

</plugin>

</plugins>

</build>

指定\, 说明\${}的è${},其它照样替换

Hello\${name}

jest.urls=${name}

(1)   执行mvn resources:resources

è

Hello ${name}

jest.urls=my testname

(2)   执行mvn install

è

Hello ${name}

jest.urls=my testname

根据id在不同环境下打对应参数

<build>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<plugins>

<!-- 资源文件拷贝插件,处理资源文件 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

<configuration>

<escapeString>\</escapeString>

</configuration>

</plugin>

</plugins>

</build>

<profiles>

<profile>

<id>dev</id>

<properties>

<jest.urls>http://n2:9200,http://n4:9200</jest.urls>

</properties>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

</profile>

<profile>

<id>production</id>

<properties>

<jest.urls>http://192.168.3.241:9200,http://192.168.3.242:9200</jest.urls>

</properties>

</profile>

</profiles>

mvn clean package-DskipTests -Pdev

è

Hello\${jest.urls}

jest.urls=http://n2:9200,http://n4:9200

mvn clean package-DskipTests -Pproduction

è

Hello\${jest.urls}

jest.urls=http://192.168.3.241:9200,http://192.168.3.242:9200

自定义过滤器 Custom resources filters

With version 2.5 you are now able to build your own customresources filter(s).

Your custom resources filter classes must implements org.apache.maven.shared.filtering.MavenResourcesFiltering.

CustomResources Filter Implementation

Your custom resources filter classes must be marked as aPlexus Component. Below a sample with a roleHint itFilter.

1.  /**
2.   * @plexus.component role="org.apache.maven.shared.filtering.MavenResourcesFiltering" 
3.   *                   role-hint="itFilter"
4.   */
5.  public class ItFilter
6.      implements MavenResourcesFiltering

Then you must activate in your build the mojo which willscan javadoc annotations to transform thoses to plexus component metadata.

1.    <plugin>
2.      <groupId>org.codehaus.plexus</groupId>
3.      <artifactId>plexus-maven-plugin</artifactId>
4.      <version>1.3.4</version>
5.      <executions>
6.        <execution>
7.          <goals>
8.            <goal>descriptor</goal>
9.          </goals>
10.      </execution>
11.    </executions>
12.  </plugin>

Dependencydeclaration

Your classes must be available in the maven-resources-pluginclasspath, this can be done with adding your artifact to the plugindependencies.

1.  <project>
2.    ...
3.    <build>
4.      <plugins>
5.        <plugin>
6.          <groupId>org.apache.maven.plugins</groupId>
7.          <artifactId>maven-resources-plugin</artifactId>
8.          <version>3.1.0</version>
9.          <configuration>
10.          ...
11.        </configuration>
12.        <dependencies>
13.          <dependency>
14.            <groupId>custom resources filters artifact groupId</groupId>
15.            <artifactId>custom resources filters artifact artifactId</artifactId>
16.            <version>custom resources filters artifact version</version>
17.          </dependency>
18.        </dependencies>
19.      </plugin>
20.    </plugins>
21.    ...
22.  </build>
23.  ...
24.</project>

Useof your Custom Resource Filter with the maven-resources-plugin

You must now declare you custom filter in the plugin.mavenFilteringHint must respect same syntax as your Plexus Component roleHint.

1.    <plugin>
2.      <groupId>org.apache.maven.plugins</groupId>
3.      <artifactId>maven-resources-plugin</artifactId>
4.      <version>3.1.0</version>
5.      <configuration>
6.        ...
7.        <mavenFilteringHints>
8.          <mavenFilteringHint>itFilter</mavenFilteringHint>
9.        </mavenFilteringHints>
10.     </configuration>
11.     ...
12.   </configuration>
13. </plugin>

maven-resources-plugin使用的更多相关文章

  1. 记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用

    今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究) 具体解决如下 第一步:在po ...

  2. springboot项目中使用maven resources

    maven resource 组件可以把pom的变量替换到相关的resouces目录中的资源文件变量 示例项目:内容中心 (文章管理)  生成jar包,生成docker ,生成k8s文件 1.项目结构 ...

  3. 学习Maven之Maven Enforcer Plugin

    1.Maven Enforcer plugin是什么鬼? 在说这个插件是什么前我们先思考这么一个问题:当我们开发人员进入项目组进行开发前,要准备开发环境,而领导总是会强调工具的统一,编译环境的统一.比 ...

  4. [Maven] - Eclipse "maven compiler plugin" 冲突解决

    刚安装最新的Maven 3.2.5,在eclipse中使用maven的Run As->Maven Install,总会提示: Failed to execute goal org.apache. ...

  5. [Apache Maven Shade Plugin] [example] [001] 官方例子:includes-excludes

    链接地址:[Selecting Contents for Uber JAR](http://maven.apache.org/plugins/maven-shade-plugin/examples/i ...

  6. maven jetty plugin

    转载:http://blog.163.com/xueling1231989@126/blog/static/1026408072013101311395492/ 前言: 在 maven 下测试调试时, ...

  7. 施用 maven shade plugin 解决 jar 或类的多版本冲突

    施用 maven shade plugin 解决 jar 或类的多版本冲突   使用 maven shade plugin 解决 jar 或类的多版本冲突java 应用经常会碰到的依赖的三方库出现版本 ...

  8. 解决Maven出现Plugin execution not covered by lifecycle configuration 错误

    http://blog.163.com/xh_ding/blog/static/1939032892015222368827/ 解决Maven出现Plugin execution not covere ...

  9. 关于Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't available. Compilation of Maven projects is supported only&

    总是出现Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't avai ...

  10. (转)新建maven项目时报错Error:Maven Resources Compiler: Maven project configuration required for module 'XX'解决方法

    转载地址:https://blog.csdn.net/qq784515681/article/details/85070195 在新建maven项目时,Problems中报错: Error:Maven ...

随机推荐

  1. (转)Java获取CLASSPATH路径

    ClassLoader提供了两个方法用于从装载的类路径中取得资源: public URL getResource(String name); public InputStream getResourc ...

  2. Codeforces 914H Ember and Storm's Tree Game 【DP】*

    Codeforces 914H Ember and Storm's Tree Game 题目链接 ORZ佬 果然出了一套自闭题 这题让你算出第一个人有必胜策略的方案数 然后我们就发现必胜的条件就是树上 ...

  3. ubnut16.4 下 设置静态ip

    一.编辑interfaces sudo vi /etc/network/interface ### i 键进入编辑 二.编辑该文件 auto loiface lo inet loopbackauto ...

  4. linux主次设备号【转载】

    一个字符设备或者块设备都有一个主设备号和次设备号.主设备号和次设备号统称为设 备号.主设备号用来表示一个特定的驱动程序.次设备号用来表示使用该驱动程序的各 设备.例如一个嵌入式系统,有两个LED指示灯 ...

  5. Unit01: Servlet基础 、 HTTP协议

    Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...

  6. snmp 介绍和Ubuntu安装使用

    一.介绍 1. 服务器监控工具可以帮助我们从任何一个地方实时了解服务器的性能和功能.监控宝服务器监控套装,可以实时CPU使用率.内存使用率.平均负载.磁盘I/O.网络流量.磁盘使用率等,能够同时为你带 ...

  7. windows 安装redis

    git :https://github.com/ServiceStack/redis-windows 备份地址:https://gitee.com/liuq1991v/redis-for-window ...

  8. 问题排查-JVM堆外内存问题排查

    首先确认堆占用 jmap 查看heap内存使用情况 jmap -heap pid 1 可以查看到MetaspaceSize,CompressedClassSpaceSize,MaxMetaSize j ...

  9. ROS6.16开始支持802.11ac了,扫盲下

    Wi-Fi的5G频段与802.11AC背后那些事儿本文章来自某路由论坛,作者为张导,本人转载,原地址http://bbs.hiwifi.com/thread-9086-1-1.html 曾几何时,大家 ...

  10. 手游[追忆之青]动画导演:2D动画制作技巧

    转自:http://www.gamelook.com.cn/2016/09/264591 GameLook报道/由一般法人计算机娱乐协会(CESA)主办的CEDEC2016日前在日本横滨举行,诸多开发 ...