精华内容
下载资源
问答
  • org.apache.maven.plugins:maven-resources-plugin.version:3.1.0 http://maven.apache.org/plugins/maven-resources-plugin//index.html Filter 说明 Variables can be included in your resources. These vari

    前言

    • Apache Maven 3.5.0
    • OS: Windows 7, v.6.1, x86_64 / win32
    • org.apache.maven.plugins:maven-resources-plugin.version:3.1.0
    • http://maven.apache.org/plugins/maven-resources-plugin//index.html

    Filter

    说明

    Variables can be included in your resources. These variables, denoted by the ${…} delimiters, can come from the system properties, your project properties, from your filter resources and from the command line.

    示例项目

    项目结构

    my-app
    │  pom.xml
    │
    └─src
        ├─main
        │  ├─java
        │  └─resources
        │          application.properties
        │
        └─test
            ├─java
            └─resources
    

    pom.xml内容

    <project xmlns="http://maven.apache.org/POM/4.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>test</groupId>
    	<artifactId>test</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    
    	<build>
    		<resources>
    			<resource>
    				<directory>src/main/resources</directory>
    				<filtering>true</filtering>
    			</resource>
    		</resources>
    	</build>
    </project>
    

    application.properties内容

    Hello ${name}
    

    替换资源文件中的变量

    命令中提供名为name的变量

    mvn resources:resources -Dname="world"
    

    target/classes/application.properties的内容变成如下这样:

    Hello world
    

    变量写到pom.xml中

    <project>
      ...
      <properties>
        <name>world</name>
      </properties>
      ...
    </project>
    

    变量也可以写到配置文件中,再有maven引入

    添加文件maven-filter-values.properties

    name = world
    

    修改pom.xml

    ...
    <filters>
      <filter>maven-filter-values.properties</filter>
    </filters>
    ...
    

    spring boot中如何使用

    在application.properties中,像下面这样写时,变量name匹配spring boot变量,而不是maven变量。

    Hello ${name}
    

    如果要在spring boot项目中使用maven变量,则应该修改为:

    Hello @name@
    
    展开全文
  • maven中默认只能读取resources文件夹下的资源,如果要读取其他路径下的资源文件,那么就需要用到maven-resources-plugin这一插件 2、配置 (1)在maven配置文件pom.xml中导入插件 <plugin> <groupId>...

    1、概念

    maven中默认只能读取resources文件夹下的资源,如果要读取其他路径下的资源文件,那么就需要用到maven-resources-plugin这一插件

    2、配置

    (1)在maven配置文件pom.xml中导入插件

    	  <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-resources-plugin</artifactId>
              <version>2.6</version>
          </plugin>
    

    (2)在build节点下面添加resource配置:

    <resource>
    		<!--从此目录下读取全部以.properties和.xml开头的文件-->
            <directory>src/main/resources/</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
    </resource>
     <resource>
    		 <!--从此目录下读取全部以.properties和.xml开头的文件-->
            <directory>src/main/java/</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
          </resource>
    </resources>
    
    展开全文
  • maven插件maven-resources-plugin的使用

    万次阅读 2018-01-25 20:06:37
    pom build节点下面添加resource配置: [html] view plain copy  resources>   resource>   directory>src/main/resources/directory>   filtering>tr

    pom build节点下面添加resource配置:

    [html] view plain copy
    1.  <resources>  
    2.            <resource>  
    3.                <directory>src/main/resources/</directory>  
    4.                <filtering>true</filtering>  
    5.                <includes>  
    6.                    <include>**/*.properties</include>  
    7.                </includes>  
    8.            </resource>  
    9.            <resource>  
    10.                <directory>src/main/resources/</directory>  
    11.                <filtering>false</filtering>  
    12.                <includes>  
    13.                    <include>**/*.xml</include>  
    14.                </includes>  
    15.            </resource>  
    16.        </resources>  

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
    </plugin>


    resource的filtering属性用来表示资源文件中的占位符是否需要被替换,true为需要替换。这个不写的话就等着抓脑袋吧。。。。

    上面的定义是所有的.properties文件中的EL表达式占位符都会在打包时动态替换,所有的.xml文件则不会替换占位符。

    接下来我们配置两个profile,一个是测试环境,一个是正式环境配置:

    [html] view plain copy
    1. <profiles>  
    2.         <profile>  
    3.             <id>dev</id>  
    4.             <properties>  
    5.                 <jest.urls>http://n2:9200,http://n4:9200</jest.urls>  
    6.             </properties>  
    7.             <activation>  
    8.                 <activeByDefault>true</activeByDefault>  
    9.             </activation>  
    10.         </profile>  
    11.   
    12.         <profile>  
    13.             <id>production</id>  
    14.             <properties>  
    15.                 <jest.urls>http://192.168.3.241:9200,http://192.168.3.242:9200</jest.urls>  
    16.             </properties>  
    17.         </profile>  
    18.     </profiles>  

    我们再在src/main/resources目录下面创建一个config.properties文件,内容如下:

    jest.urls=${jest.urls}

    然后我们执行maven打包命令:clean package -DskipTests -Pdev

    查看对应的jar包里面的config.properties文件,可以发现占位符已经被替换成了profile dev中配置的jest.urls的值。

    增加一下官方wen'danghttp://maven.apache.org/plugins/maven-resources-plugin/

    展开全文
  • 项目在打包的时候怎么把资源文件编译、打包呢,主要用到了maven的一个插件maven-resources-plugin。 三个目标(goal) maven-resources-plugin有三个goal: resources:resources :用来将目录中的资源...

    应用的资源文件不是源代码,一般用来给应用提供熟悉配置等功能。Maven中的资源文件默认存在于src/main/resources、src/test/resources中。项目在打包的时候怎么把资源文件编译、打包呢,主要用到了maven的一个插件:maven-resources-plugin。

    三个目标(goal)

    maven-resources-plugin有三个goal:

    • resources:resources:用来将目录中的资源文件src/main/resources拷贝到编译目录${project.build.outputDirectory}。这个目标默认绑定到了Maven的process-resources阶段,所以process-resources阶段被执行,这个目标就会自动触发。
    • resources:testResources:用来将目录中的资源文件src/test/resources拷贝到编译目录${project.build.testOutputDirectory}。这个目标默认绑定到了Maven的process-test-resources阶段,所以process-test-resources阶段被执行,这个目标就会自动触发。
    • resources:copy-resources:用来将指定目录中的资源文件拷贝到指定目录,注意需要自己设置资源文件目录和目标目录。

    对resources插件的配置

    如果默认的情况不能满足我们的需求,比如说资源文件中使用了占位符${},需要由属性文件替换。那就需要我们进行相关的配置,有两个地方需要进行配置:

    1. <build />下
    2. 在maven-resources-plugin插件下

    1、<build />下

    <filters>
        <filter>src/main/filters/dev.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>*.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>*.properties</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${basedir}/${environment.dir}</directory>
            <includes>
                <include>${environment}.properties</include>
            </includes>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>*.properties</include>
            </includes>
        </testResource>
    </testResources>

    <build/>下面配置的是全局信息,其下配置的解释:

    • <filters />表示用来进行属性替换的属性文件路径。属性文件是用来替换资源文件中的变量的,比如属性文件中有个个键值对”key1=val1“,那么在资源文件中有个”${key1}“,就会被替换为”val1“(假设资源文件开启了filter),默认路径为”${basedir}/src/main/filters“
    • <resources />配置main的资源信息
      • <directory/>配置资源文件的原始目录
      • <filtering/>表示是否开启过滤,过滤的意思就是用属性文件来替换资源文件中的变量
      • <includes/>表示包含哪些文件
      • <excludes/>表示去除哪些文件
    • <testResources />配置test的资源信息

    2、maven-resources-plugin下

    在插件下的配置在标签<configuration/>下,和全局使用方式一样,这里列举几个官网的例子:

    2.1、设置字符集

    a、指定project.build.sourceEncoding属性,maven-resources-plugin会自动使用这个属性作为字符集

    <project ...>
     ...
     <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       ...
     </properties>
     ..
    </project>

    b、在maven-resources-plugin插件里自己设置

    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
              ...
              <encoding>UTF-8</encoding>
              ...
            </configuration>
          </plugin>
        </plugins>
        ...
      </build>
      ...
    </project>

    2.2、设置资源文件目录

    maven里默认的资源文件路径是src/main/resources

    <project>
     ...
     <build>
       ...
       <resources>
         <resource>
           <directory>[your folder here]</directory>
         </resource>
       </resources>
       ...
     </build>
     ...
    </project>

    2.3、拷贝资源到其他文件

    使用copy-resources这个目标,可以将这个目标绑定到某个阶段上

    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</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>
        ...
      </build>
      ...
    </project>

    2.4、以后缀过滤文件

    除了可以使用<excludes/>去除某些文件外,还可以

    <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>

    转载于:https://my.oschina.net/cregu/blog/3018425

    展开全文
  • Maven 插件resources 插件

    万次阅读 2018-07-06 21:41:07
    1.Apache Maven Resources Plugin 官网对该插件的详解见官方文档地址 The Resources Plugin handles the copying of project resources to the output directory. There are two different kinds of resources: ...
  • mavenresources插件

    千次阅读 2015-05-18 22:27:58
    mavenresources插件职责是将项目的资源文件拷贝到目标目录。maven将资源划分为两类:main resources 和 test resources。因此有如下三个相应的goal: 1. resources:resources command: mvn resources:...
  • http://maven.apache.org/plugins/maven-resources-plugin/ resource插件对资源文件编码处理,资源文件目录指定,资源文件拷贝等功能,最后将资源文件拷贝到一个目录 默认执行方法: mvn resources:resources  ...
  • resources目录如下: [img=https://img-bbs.csdn.net/upload/201506/12/1434093033_254232.png][/img] resources目录下有一个config目录 config目录下有3个目录,dev,staging,production pom.xml里面配置...
  • Maven将main resources和test resources分开,一般main resources关联main source code,而test resources关联test source code。 Resources插件目标有三个: resources:resources,拷贝main resources到main ...
  • 最近一个应用用到了Jetty SSL方式,开发的时候把测试用的keystore文件放到conf目录下,...看来是maven-resources-plugin在copy-resources的时候的改动的,可能会编码设定有关系。 暂时还没有找到解决方法,Mark一下先。
  • 这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上...
  • maven-resources-plugin主要是将项目中的资源文件编译、打包;注意,资源文件不是源代码,一般是环境的配置文件,默认存在src/main/resources和src/test/resources中。 maven-resources-plugin的三个目标(goal): ...
  • 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。有时候,比如mybatis的mapper.xml文件,我们...
  • Maven学习(四) - 插件maven-resources-plugin

    万次阅读 2019-03-11 16:36:35
    Maven将main resources和test resources分开,一般main resources关联main source code,而test resources关联test source code。 Resources插件目标有三个: resources:resources,拷贝main resources到main ...
  • Maven将main resources和test resources分开,一般main resources关联main source code,而test resources关联test source code。 Resources插件目标有三个: resources:resources:拷贝main resources到main ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 811
精华内容 324
关键字:

maven插件resources