2017-10-19 20 views
0

Jenkins Pipelineスクリプトを使用してArtifactoryにバイナリをアップロードしようとしています。 Artifactory documentationから同じサンプルを使用しましたが、動作しません。別の同様のquestionありますが、応答がないArtifactory - Jenkins Pipelineスクリプトを使用してアップロードする

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

      } 
     } 
    } 
} 

Artifactory 5.4.6

答えて

1

あなたは宣言型のパイプラインを使用していない: 私は、次のエラーが発生しましたかなり正しい。環境セクションはそれほど機能しません。あなたはそこに文字列を定義することしかできません。defはエラーを投げると思っていたでしょうが、明らかにそうではありません。

serverは、Artifactory.serverオブジェクトへの参照の文字列表現に等しい可能性があります。基本的には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) 
       } 
      } 
     } 
    } 
} 
関連する問題