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

<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. JVM原理一

    简述: 这个其实不是很重要,一般配好环境就好了,如果不对jvm做啥动作不需要搞清楚这个. JVM ---->< JVM.DLL 挂接到JNIENV的实例 JAVA程序和操作系统的一个沟通者 ...

  2. MySQL 5.6.30 升级到5.7.10

    MySQL 5.6.30 升级到5.7.10 注意,这种方式的前提是数据文件没有和软件目录在一起,如果在一起,需要停止数据库后先移动数据文件 1.解压5.7.10包到/usr/local2.停止当前的 ...

  3. java中守护线程的一些概念和用法

    网上的资料中,守护线程的功能一般都是“只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线 ...

  4. 关于java日期

    时间戳转为yyyy-MM-dd SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String formatDa ...

  5. 看了redis想一下

    redis总结 要想在python中使用redis,要先在本地安装redis,并开启redis-server,然后再导入python的redis包,pip install redis 怎么在Linux ...

  6. vue中特殊特性

    key 预期:number | string key 的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes.如果不使用 key,Vue 会使用一种最大限度减少 ...

  7. drone 学习二 pipeline 说明

    1. 基本语法 pipeline: backend: image: golang commands: - go build - go test frontend: image: node comman ...

  8. c# winform委托的使用

    可参考http://bbs.csdn.net/topics/390377875中使用new Action<>的使用方式,替代delegate的申明. public delegate voi ...

  9. Web Service简介(一)

    这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门.在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单. 什么 ...

  10. 关于WCF引用方式之WCF服务寄宿控制台

    1.创建解决方案WCFService 依次添加四个项目,如上图,Client和Hosting为控制台应用程序,Service和Service.Interface均为类库. 2.引用关系 Service ...