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

<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. 2019ICPC南昌邀请赛网络赛 I. Max answer (单调栈+线段树/笛卡尔树)

    题目链接 题意:求一个序列的最大的(区间最小值*区间和) 线段树做法:用单调栈求出每个数两边比它大的左右边界,然后用线段树求出每段区间的和sum.最小前缀lsum.最小后缀rsum,枚举每个数a[i] ...

  2. BZOJ3144 Hnoi2013 切糕 【网络流】*

    BZOJ3144 Hnoi2013 切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的 ...

  3. PHP 读取和导出 CSV文件

    PHP 读取和导出 CSV文件,速度比phpexcel快80%,而phpexcel 占内存,在数据大的情况下,5万条只需几秒不到,几乎感觉不出来 如果遇到数字是科学计算法,可以在前面加一个 ' 单引号 ...

  4. 接口测试基础——第6篇unittest模块(三)

    今天是unittest最后一讲,我们解决一下如何只运行一次setUp和tearDown方法以及简单的数据驱动的知识. 1.只运行一次setUp和tearDown方法 很简单,只需要把setUp和tea ...

  5. npm 可执行模块的开发&&私服发布

    备注:    大家日常在使用npm 安装依赖的时候有一些是命令行工具,比如vue-cli,具体的开发比较简单,同时 可以基于此开发一些脚手架,方便开发. 1. 项目初始化 npm init 备注:按照 ...

  6. Spring Cloud feign 服务超时处理

    Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题 造成该问题的原因 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fa ...

  7. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

  8. 页面加载完之后在执行js代码

    把代码写在 window.onload = function () { //js代码 //此处js代码是页面完全加载完之后执行 } 即可. 例: <script type="text/ ...

  9. 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门(转)

    转自:http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html 喜欢写Blog的人,会经历三个阶段. 第一阶段,刚接触Blog, ...

  10. erlang的调试配置

    distel可以断点调试erlang,但是步骤非常繁琐 以下面的测试脚本为例说明 geometry.erl -module(geometry). -export([area/1]). area({re ...