我正在尝试使用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
您没有完全正确地使用声明式管道。环境部分不能那样工作。您只能在其中定义字符串,我以为def会引发错误,但显然不会。
def
您可能最终server等于对Artifactory.server对象的引用的String表示形式。基本上是Artifactory.server.toString()。
server
试试这个:
pipeline { agent any stages { stage('upload') { steps { script { def server = Artifactory.server 'art-1' def uploadSpec = """{ "files": [{ "pattern": "path/", "target": "path/" }] }""" server.upload(uploadSpec) } } } } }