2017-10-19 287 views
0

我想通过使用Jenkins管道脚本上传一些二进制文件到Artifactory。 我使用了Artifactory documentation的相同示例,但它不起作用。 我有以下错误:Artifactory - 使用Jenkins管道脚本上传

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

还有另外一个类似question,但没有任何反应......

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

      } 
     } 
    } 
} 

Artifactory的5.4.6

回答

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) 
       } 
      } 
     } 
    } 
} 
相关问题