一尘不染

Artifactory-使用Jenkins Pipeline脚本上传

jenkins

我正在尝试使用Jenkins Pipeline脚本将一些二进制文件上传到Artifactory。我使用了Artifactory
文档中的相同示例,但是它不起作用。我有以下错误:

hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.upload() is applicable for argument types: (java.lang.String) values: [{
              "files": [
                       ....

还有另一个类似的问题,但没有回应。

pipeline {
    agent any
    environment {
        def server = Artifactory.server 'art-1'
        def uploadSpec = """{
              "files": [
                {
                   "pattern": "path/",
                    "target": "path/"
                }
             ]
            }"""

    }
    stages {
        stage('upload') {
           steps {
              script { server.upload(uploadSpec) }

            }
        }
    } 
}

人工工厂5.4.6


阅读 906

收藏
2020-07-25

共1个答案

一尘不染

您没有完全正确地使用声明式管道。环境部分不能那样工作。您只能在其中定义字符串,我以为def会引发错误,但显然不会。

您可能最终server等于对Artifactory.server对象的引用的String表示形式。基本上是Artifactory.server.toString()。

试试这个:

pipeline {
    agent any

    stages {
        stage('upload') {
           steps {
              script { 
                 def server = Artifactory.server 'art-1'
                 def uploadSpec = """{
                    "files": [{
                       "pattern": "path/",
                       "target": "path/"
                    }]
                 }"""

                 server.upload(uploadSpec) 
               }
            }
        }
    } 
}
2020-07-25