将文件从 Artifactory 下载到 Teamcity,而不保留其完整路径

2024-02-05

我在用

  • TeamCity 企业版 2017.1.2(内部版本 46812)
  • Artifactory 专业版 5.3.1 修订版 50046
  • Teamcity 已安装 Artifactory 插件(版本 2.3.0)

任务很简单- 从 Artifactory 下载文件到 Teamcity 构建:

  • 来自ArtifactoryMyRepo/RootFolder/ProjectFolder/1.2.3/<files>
  • To TC %checkoutdir%/artifacts/<files>

The <files>路径的一部分包含文件夹和文件,我想保留它们的结构。

下载规范 json 为:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/",
      "target": "artifacts/"
    }
  ]
}

但是,文件下载到的位置与我预期的不同:

  • Actual: artifacts/RootFolder/ProjectFolder/1.2.3/<files>
  • 预期的:artifacts/<files>

Artifactory 的整个路径将附加在目标目录之后。如何告诉插件仅使用文件的相对路径after指定的根?我尝试过使用通配符、斜杠等,但没有任何帮助。

我必须创建一个额外的构建步骤,手动将文件移动到我期望的结构,但我不想这样做。


工作答案:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
      "target": "artifacts/{1}",
      "flat": "true"
    }
  ]
}


您可以按照所述在文件规范中使用占位符来自定义目标结构here https://www.jfrog.com/confluence/display/RTF/Using+File+Specs#UsingFileSpecs-UsingPlaceholders。 占位符允许您捕获文件规范“模式”属性值的特定部分,并在“目标”属性值中使用它。

在您的情况下,下载的文件规范应如下所示:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
      "target": "artifacts/{1}"
    }
  ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从 Artifactory 下载到 Teamcity,而不保留其完整路径 的相关文章

随机推荐

  • 容器内可滚动的 div

    我有以下 HTML http jsfiddle net fMs67 http jsfiddle net fMs67 我想让 div2 尊重 div1 的大小并滚动 div3 的内容 这可能吗 Thanks 更新1 这是我在提出问题时过于简单
  • JAR 文件:找不到主类

    好吧 我有一个奇怪的问题 我想将我的程序之一作为 jar 文件运行 但是当我双击打开它时 我收到一条错误消息 例如 找不到主类 程序正在关闭 我很确定我做的一切都是正确的 罐子应该可以工作 我也尝试过其他程序 每个程序都是一样的 我通过 B
  • printf 与 std::cout [重复]

    这个问题在这里已经有答案了 可能的重复 我应该在 C 代码中使用 printf 吗 https stackoverflow com questions 2017489 should i use printf in my c code 如果我
  • 如何在一张表中创建多个序列?

    我有一张 收据 表 我有列 customer id 谁有收据 和收据号 对于每个客户 receipt number 应从 1 开始 并且是一个序列 这意味着 customer id 和receipt number 将是唯一的 我怎样才能优雅
  • VIM 自定义箭头键映射不适用于窗口切换?

    我一直在尝试创建一个在 vim 中打开的窗口拆分之间切换的快捷方式 而不是必须使用 ctrl w arrowkey 我更愿意只能够使用 ctrl arrow key 这是我当前的 vimrc 中的内容 map
  • 如何实现hbase安全批量加载

    我已经在 kerberos 集群中的 hbase 中创建了一个批量加载 其驱动程序类与此类似 工作 public static void main String args try int response ToolRunner run HB
  • PHP 传递一个类作为引用?

    在Python中 你可以这样做 class SomeClass object pass s SomeClass someClassInstance s 如何在 PHP 中实现同样的效果 据我了解 你不能这样做吗 这是真的 您可以创建动态类名
  • 向 Pandas Dataframe 中的字符串添加前导零

    我有一个 pandas 数据框 其中前 3 列是字符串 ID text1 text 2 0 2345656 blah blah 1 3456 blah blah 2 541304 blah blah 3 201306 hi blah 4 1
  • 除非填写所有文本输入字段,否则禁用表单按钮

    我有一个具有多个文本输入的表单 我不想为每个输入添加 id 因为它们是从服务器端代码生成的 字段数量可能不同等 我只是希望能够禁用提交按钮 直到出现是输入到每个文本输入中的文本 我已经做到了这一点 但仅在文本输入到一个文本输入字段之前禁用按
  • 如何使用 boost bcp?

    我有 bcp 工具 它是用 boost 安装程序预先构建的 我想将 boost 所需的依赖项提取到一个较小的文件中 因为我希望能够在学校构建这个项目 我正在尝试使用 bcp 但我不明白如何使用它 尽管有以下说明 http www boost
  • Mongodb + Node.js:删除多个文档并返回

    我使用下面的代码一次删除多个文档 db collection testcollection deleteMany id in 1 2 3 function error response 有没有办法一次性删除并返回所有已删除的文档 NOTE
  • 使用 C# 自定义属性进行异常和审计跟踪日志记录

    是否可以创建一个自定义功能来捕获由自定义属性设置的方法中发生的异常 我打算做这样的事情 Logging FeatureEnum SomeFeature IntentEnum SomeIntent some comment public vo
  • 如何构建Graceful Degradation AJAX网页?

    我想用 优雅降级 构建网页 即 即使JavaScript被禁用 网页也能正常工作 现在我必须对 AJAX 响应的格式做出设计决策 如果禁用 javascript 则对服务器的每个 HTTP 请求都会生成 HTML 作为响应 浏览器将刷新并显
  • 为什么结构对齐取决于字段类型是原始类型还是用户定义的?

    In 野田时间 http nodatime orgv2 我们正在转向纳秒分辨率 这意味着我们不能再使用 8 字节整数来表示我们感兴趣的整个时间范围 这促使我研究 Noda Time 的 许多 结构体的内存使用情况 这反过来又引导我发现 CL
  • 让 NppExec 了解 Notepad++ 中当前文件的路径(对于 Python 脚本)

    很长一段时间以来第一次使用 Windows 并使用了 notepad 并使用 nppexec 插件来运行 python 脚本 但是 我注意到 notepad 没有选择保存脚本的目录 例如 我将 script py 放在 我的文档 中 但是
  • 当在 jQueryUI 自动完成列表中选择一个项目时,如何防止输入元素更新?

    我有以下 jQueryUI 自动完成功能 clientSearch autocomplete source function request response var url window apiUrl clients searchText
  • PostgreSQL:在 plpgsql 函数中回滚事务?

    来自 MS SQL 领域的我倾向于大量使用存储过程 我目前正在编写一个应用程序 使用了很多 PostgreSQL plpgsql 函数 我想做的是 如果我在特定函数中的任何点出现异常 则回滚特定函数中包含的所有插入 更新 我最初的印象是每个
  • Xamarin.Forms预览器“连接已关闭”[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 刚刚打开 Xamarin Forms 预览器 它显示 出现问题 连接已关闭 它是全新的 Visual Studio 2017 安装和空白的
  • 方向改变后,Fragment 对 mActivity 的引用变为 null。碎片状态维护无效

    我的应用程序由几个片段组成 到目前为止 我已经将它们的引用存储在自定义应用程序对象中 但我开始认为我做错了什么 当我意识到我的片段对 mActivity 的所有引用在方向更改后都变为空时 我的问题就开始了 因此 当我在方向更改后调用 get
  • 将文件从 Artifactory 下载到 Teamcity,而不保留其完整路径

    我在用 TeamCity 企业版 2017 1 2 内部版本 46812 Artifactory 专业版 5 3 1 修订版 50046 Teamcity 已安装 Artifactory 插件 版本 2 3 0 任务很简单 从 Artifa