maven-resourse-plugin使用总结

一、简介

更详细总结参考: resource插件理解


  • 各goal的作用
resource:resource

将main代码的resources拷贝到main.output.directory,具体是project.build.outputDirectory
默认在maven的process-resources周期执行

resources:testResources

将test代码的resources拷贝到test.output.directory,具体是project.build.testOutputDirectory
默认在maven的process-test-resources周期执行

resources:copy-resources 

资源拷贝,需要指定资源位置和目标位置

mvn resources:help -Ddetail=true

查看resources插件的使用介绍


  • 变量替换时的分隔符定义

格式为beginToken*endToken, 如果beginToken和endToken一样,可以缩写为tokentokentoken

默认分隔符定义如下

  <delimiters>
       <delimiter>${*}</delimiter>
       <delimiter>@</delimiter>
  </delimiters>

可以在project.properties和resource-plugin的configuration里配置


  • 指定resource时的编码

在project.properties或resources插件的configuration里配置

{project.build.sourceEncoding}

  • filters的作用及组成

resources.resources.filters.filter设置,作用是用来替换变量时作为变量定义源

filters文件包括: 显式在filer定义的文件、SystemProperties、project.properties

<build>
        <filters>
            <filter>src/main/config/${running.env}/zookeeper.properties</filter>
            <filter>src/main/config/${running.env}/xdcs.properties</filter>
            <filter>src/main/config/${running.env}/maven-test.properties</filter>
            <filter>src/main/config/${running.env}/web.properties</filter>
        </filters>
</build>

  • include和exclusion使用注意事项

指定resource时,默认包含directory的所有资源,即**/*.*

如果仅部分需要当成resource,通过include和exclusion来指定

<resource>
    <directory>src/main/resources</directory>
    <includes>
        <include>application.properties</include>
    </includes>
    <filtering>true</filtering>
</resource>

二、使用场景

  • maven默认周期resources的处理

resources:resources将mainResource拷贝到target/classes目录
resources:testResources将testResource拷贝到target/test-classes目录

特别地,maven的surefire:test执行时相同位置的resource优先取test-classes目录的,找不到对应的resources才会去找classes目录下去找


  • 指定文件类型不进行变量替换
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <nonFilteredFileExtensions>
          <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
          <nonFilteredFileExtension>gif</nonFilteredFileExtension>
          <nonFilteredFileExtension>png</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
      </resource>
    </resources>

  • 用单独的插件命令结合命令选项 -X -e

这点非常有用,特别是当build结果达不到预期时debug使用效果极佳。

能看到具体过程信息,

插件当前版本及配置项信息

当前生效的配置信息

当前生效的properties信息

当前build过程的详细信息等

mvn resources:testResources -X -e
mvn resources:resources -X -e

  • resource和testResource阶段的配置差异

这点非常重要,resource和testResource这两个goal配置定义的地方不一样,千万别搞错

比如说src/test/resources下的配置文件里也要通过@zok.node@这样变量替换,就只能在testResources标签下设置

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值