Artifactory:以非递归方式下载最新发布版本的所有根文件
我想从artifactory检索遵循以下模式的文件:Artifactory:以非递归方式下载最新发布版本的所有根文件,artifactory,Artifactory,我想从artifactory检索遵循以下模式的文件: "my-artifactory-repo/project-name/branch-name/1234/*" 其中,1234是最新发布版本的版本号,其中,*应不递归到文件夹中,但只匹配即时文件。我使用buildpublish以构建名称“project name.branch name”发布每个构建 我已经编写了一个filespec,它指定了一个“build”,而不是一个build编号,从而使Artifactory自动选择最
"my-artifactory-repo/project-name/branch-name/1234/*"
其中,1234
是最新发布版本的版本号,其中,*
应不递归到文件夹中,但只匹配即时文件。我使用buildpublish
以构建名称“project name.branch name”发布每个构建
我已经编写了一个filespec,它指定了一个“build”,而不是一个build编号,从而使Artifactory自动选择最新发布的build。如果我将模式简化为我的artifactoryrepo/project name/branch name/*
,这将导致下载最新版本的所有工件,那么这就很好了
然而,我遇到的麻烦是要求只下载即时文件,而不是递归到文件夹中。所以我尝试使用正则表达式,如下所示
{
"files":
[
{
"pattern": "my-artifactory-repo/project-name/branch-name/(\\d+/[^/]+)",
"build": "project-name.branch-name",
"recursive": "false",
"regexp": "true","
"target": "./artifactory-tmp/"
}
]
}
但是,每次我尝试使用正则表达式时,结果都是零。
其他一些我尝试过但不起作用的事情:
- 不包含带括号的正则表达式
- 使用一个更简单的正则表达式,比如
(因为目前我有4位数的内部版本号,并且我知道那里有一个build.bat文件),带或不带括号…/build.bat
- 不使用正则表达式,而是使用模式
。但这会导致递归,尽管存在“递归”:“false”my artifactory repo/project name/branch name/*/*
- 使用这个搜索命令首先检索可用的内部版本号,这样我就可以提取最后一个版本号并将其插入到filespec中。但是,无法判断最新生成文件夹是否已完成并已发布,或者当前仍在上载
jfrog search --recursive=false --include-dirs=true "my-artifactory-repo/project-name/branch-name/"
看看你是否能让你的模式更具体,这样它就能准确地捕捉到你需要的东西。如果这是不可能的,考虑把你的模式分成多个模式。所有模式仍然可以包含在同一个文件规范中,因为规范中的“文件”是一个列表,可以包含多个模式和目标对。谢谢,regexp选项的不对称性只适用于上传,这让我措手不及。我现在改变了我的方法。我之所以以这种方式来解决这个问题,是因为我需要迁移大量的Jenkins“归档工件”和“复制工件”步骤来使用Artifactory。我宁愿尽可能地坚持那些原始模式,以避免引入新问题。重新考虑每个模式以适应Artifactory将非常耗时。