You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins使用fileOperations将DEVBUILDS中Zip文件解压至同目录

问题

需要从DEVBUILDS目录及其子目录中批量解压所有Zip文件,要求每个Zip文件解压到自身所在的同一目录,生成与原文件同名(无.zip后缀)的内容。但不确定targetLocation参数该如何设置:

  • 指定具体路径(如\\1.1.1.1\exampleFolder\targetFolder)时能正常解压,但无法适配大量分散的Zip文件
  • 尝试过'**/**'、'.'或'/**'作为targetLocation,均无效

当前代码:

stage('DevBuildsUnzip'){
    
def DEVBUILDS = "\\\\1.1.1.1\\exampleFolder\\sourceZipFolder"

    dir(DEVBUILDS) {
        fileOperations([
            fileUnZipOperation(filePath: '**/**.zip', targetLocation: '')
        ])
    }
}

解决方案

要实现每个Zip文件在自身目录下解压并生成同名文件夹,需借助fileOperations插件的动态路径变量,而非固定路径或无效通配符:

  1. 核心配置逻辑

    • 将targetLocation设置为'${FILE_PATH}',该内置变量会自动替换为当前匹配到的Zip文件的父目录路径
    • 启用destinationFolder: true参数,确保插件自动创建与原Zip文件同名(无.zip后缀)的文件夹存放解压内容
  2. 修改后的完整代码

stage('DevBuildsUnzip'){
    def DEVBUILDS = "\\\\1.1.1.1\\exampleFolder\\sourceZipFolder"

    dir(DEVBUILDS) {
        fileOperations([
            fileUnZipOperation(
                filePath: '**/*.zip',  // 规范通配符,匹配所有子目录下的zip文件
                targetLocation: '${FILE_PATH}',  // 动态获取当前zip文件的所在目录
                destinationFolder: true  // 自动生成与zip同名的解压文件夹
            )
        ])
    }
}
  1. 关键说明
    • ${FILE_PATH}是插件针对批量操作提供的动态变量,会为每个Zip文件单独计算其所在目录
    • destinationFolder: true直接满足“生成与原文件同名但无.zip后缀的内容”的需求,无需手动拼接路径
    • 通配符**/*.zip比**/**.zip更精准,明确匹配所有子目录下的.zip格式文件

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:04:55