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一样,可以缩写为tokentoken或token
默认分隔符定义如下
<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来指定
src/main/resources application.properties true
二、使用场景
- 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/resourcesdirectory><filtering>truefiltering><nonFilteredFileExtensions><nonFilteredFileExtension>jpgnonFilteredFileExtension><nonFilteredFileExtension>gifnonFilteredFileExtension><nonFilteredFileExtension>pngnonFilteredFileExtension>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/resourcesdirectory><filtering>truefiltering>resource>resources><testResources><testResource><directory>src/test/resourcesdirectory><filtering>truefiltering>testResource>testResources>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
