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

Jenkins Pipeline使用rtDownload时未找到Artifactory文件如何抛出错误

Jenkins rtDownload 缺失构件主动报错解决方案

rtDownload默认无匹配构件时不会抛出异常,可通过以下两种方式实现缺失报错:

方法1:使用原生failNoOp参数(推荐)

JFrog Artifactory插件1.2.x及以上版本支持failNoOp配置项,只要无任何文件被下载就会直接抛出异常终止流水线,直接在下载规则中添加即可:

Spec JSON写法示例:

rtDownload (
    serverId: '你的Artifactory服务配置ID',
    spec: """{
        "files": [
            {
                "pattern": "libs-release-local/*.ear",
                "target": "./本地存储路径/",
                "failNoOp": true
            }
        ]
    }"""
)

闭包DSL写法示例:

rtDownload serverId: '你的Artifactory服务配置ID', {
    downloadSpec {
        files {
            pattern 'libs-release-local/*.ear'
            target './本地存储路径/'
            failNoOp true
        }
    }
}

方法2:后置手动校验(兼容旧插件版本)

如果使用的插件版本不支持failNoOp参数,可在下载完成后校验本地路径下是否存在目标文件,不存在时手动抛出错误:

// 执行下载
rtDownload (
    serverId: '你的Artifactory服务配置ID',
    spec: """{
        "files": [
            {
                "pattern": "libs-release-local/*.ear",
                "target": "./ear_download/"
            }
        ]
    }"""
)
// 校验下载结果
def targetFiles = findFiles glob: 'ear_download/*.ear'
if (targetFiles.size() == 0) {
    error "未从Artifactory匹配到任何符合规则的.ear构件,流水线终止"
}

注:上述示例中的findFiles是Jenkins Pipeline Utility Steps插件提供的内置方法,无需额外引入第三方依赖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:39:03