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

Jenkins CPS方法不匹配问题:已标记修复的JENKINS-58643在2.190.3.2版本中复现(Artifactory上传场景)

解决Jenkins Artifactory上传时的artifactoryUpload方法不匹配问题

这个报错我太熟悉了!你遇到的是Jenkins Pipeline CPS执行模型和Artifactory插件方法调用的兼容性问题,对应JENKINS-58643——虽然这个问题标记为已修复,但在你用的Jenkins 2.190.3.2这个较旧版本里,直接调用server.upload还是会触发这个冲突。

给你两个可行的解决办法,优先推荐第一个,更稳妥:

方法一:改用Pipeline专用的rtUpload步骤

Artifactory插件专门为Pipeline设计了rtUpload步骤,完全适配CPS模型,能避开这个方法不匹配的问题。修改后的流水线代码如下:

stage('upload artifactory') { 
    steps { 
        sh "touch /tmp/blabla" 
        sh "gzip /tmp/blabla" 
        script { 
            def server = Artifactory.server('myid') 
            server.credentialsId = 'my-cred' 
            def uploadSpec = """{ 
                "files": [ 
                    { 
                        "pattern": "/tmp/blabla.gz", 
                        "target": "pkg/com/myentreprise/mystuff/scm/dumps/solr/" 
                    } 
                ] 
            }""" 
            // 替换原有的server.upload为rtUpload步骤
            rtUpload(
                server: server,
                spec: uploadSpec,
                failNoOp: true
            )
        } 
    } 
}

方法二:升级Artifactory插件(需注意兼容性)

如果一定要用server.upload的写法,可以尝试升级Artifactory插件到修复JENKINS-58643的版本,但要注意你的Jenkins 2.190.3.2版本对插件版本的兼容性,避免升级后出现其他问题。

简单说,核心问题就是旧版本里直接调用Java对象的方法会和CPS转换冲突,用插件提供的Pipeline原生步骤就能完美解决啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:47:42