Artifactory - 使用Jenkins管道脚本上传
问题描述:
我想通过使用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
答
您没有使用管道声明完全正确。环境部分不能像那样工作。你只能在那里定义字符串,我会认为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)
}
}
}
}
}