产物目录
# 产物目录
在添加构建时候需要填写产物目录。
这里产物目录是指:执行构建命令后执行发布操作时发布指定文件或者文件夹到对应位置的目录
这里的目录注意一定是仓库路径下面的相对目录
比如:
- 构建 java 项目成功后会生成 target 目录,一般场景都是需要 target 目录下面的某个文件,那么填写:
/target/xxx.jar
- 如果是多层级目录则需要填写完整路径如果:
/xxxx/target/xxxx.jar
- 构建 vue 项目成功后会生成 dist 目录,那么直接填写
dist
即可
这里可以添加文件夹或者文件,如果填写文件夹则会自动发布整个文件到对应位置,如果填写文件则只发布对应到文件
产物目录目前支持模糊匹配: 支持通配符(AntPathMatcher)
? 匹配一个字符
* 匹配零个或多个字符
** 匹配路径中的零个或多个目录
模糊匹配示例:/target/xxx-1.0.?.jar
、/target/*.jar
注意:目前模糊匹配只会匹配到一个结果,如果匹配到多个结果将取第一个结果
# 模糊匹配规则
注意
2.10.14 版本以上支持更丰富的模糊匹配规则
新版本匹配符支持配置三个属性:
属性1:属性2[可选]:属性3[可选]
属性1:为模糊匹配的表达式 ( Ant-style
)
属性2:匹配到的文件保留方式,可用值:KEEP_DIR
、SAME_DIR
。(大小写均兼容、配置错误默认为 KEEP_DIR)
KEEP_DIR: 保留匹配到的文件的文件层级
SAME_DIR: 将匹配到的文件均保留到同一个层级(合并到一个文件夹下)。慎用该方式,如果多目录存在相同的文件名会出现合并后只保留匹配到的最后一个文件
属性3: 需要剔除匹配到多级文件夹的指定目录,(可以配置为空)。建议配合属性2的KEEP_DIR
使用。剔除目录可以理解为二次过滤前缀匹配文件
# 🌰 举个栗子
# 栗子1: /web*/**/*.html:KEEP_DIR:/web2/
表示匹配执行构建后,对应目录下的:已 web 开头的目录下面的所有 html 文件,并且保留文件夹层级关系,最后发布时候需要剔除 /web2/
假设:目录下有如下文件
/vue/vue.html
/web/web1.html
/a/b/t.html
/web2/a.html
/web2/b/a.html
/web1/aa/t.html
2
3
4
5
6
执行匹配后的文件
a.html
/b/a.html
2
# 栗子2: /web*/**/*.html:SAME_DIR:
表示匹配执行构建后,对应目录下的:已 web 开头的目录下面的所有 html 文件,并且合并文件到同一个目录,最后发布时候需要剔除 /web2/
假设:目录下有如下文件
/vue/vue.html
/web/web1.html
/a/b/t.html
/web2/a.html
/web2/b/a.html
/web1/aa/t.html
2
3
4
5
6
执行匹配后的文件
web1.html
a.html
t.html
2
3
# 栗子3: /web*/**/*.html:KEEP_DIR:
表示匹配执行构建后,对应目录下的:已 web 开头的目录下面的所有 html 文件,并且保留文件夹层级关系,最后发布时候按照原目录结构发布
假设:目录下有如下文件
/vue/vue.html
/web/web1.html
/a/b/t.html
/web2/a.html
/web2/b/a.html
/web1/aa/t.html
2
3
4
5
6
执行匹配后的文件
/web/web1.html
/web2/a.html
/web2/b/a.html
/web1/aa/t.html
2
3
4