我正在尝试使用 Jenkins 管道脚本将一些二进制文件上传到 Artifactory。 我使用了来自 Artifactory documentation 的相同示例,但它不起作用。 我有以下错误:
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) }
}
}
}
}
人工 5.4.6
最佳答案
您没有正确使用声明性管道。环境部分不是那样工作的。你只能在那里定义字符串,我原以为 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)
}
}
}
}
}
关于jenkins - Artifactory - 使用 Jenkins Pipeline 脚本上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46832989/