Artifactory - 使用Jenkins管道脚本上传

Jil*_*ils 1 groovy artifactory jenkins jenkins-pipeline

我正在尝试使用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": [
                       ....
Run Code Online (Sandbox Code Playgroud)

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

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) }

            }
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

Artifactory 5.4.6

Rob*_*les 7

您没有正确使用声明性管道.环境部分不起作用.你只能在那里定义字符串,我会认为这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) 
               }
            }
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)