如何修复hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名
我有两个管道,当我调用另一个共享库时,我得到了以下错误- hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法的签名:genric.call()适用于参数类型:()值:[] 可能的解决方案:wait()、any()、wait(long)、main([Ljava.lang.String;)、any(groovy.lang.Closure)、each(groovy.lang.Closure) 以下是我的两份文件如何修复hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名,groovy,jenkins-pipeline,shared-libraries,Groovy,Jenkins Pipeline,Shared Libraries,我有两个管道,当我调用另一个共享库时,我得到了以下错误- hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法的签名:genric.call()适用于参数类型:()值:[] 可能的解决方案:wait()、any()、wait(long)、main([Ljava.lang.String;)、any(groovy.lang.Closure)、each(groovy.lang.Closure) 以下是我的两份文件
genric.groovy file
#!/usr/bin/env groovy
//import hudson.model.*
pipeline{
agent any
stages{
stage('build-deploy'){
steps{
sh'''
cd /home/manish/Desktop/test/
mkdir testing
'''
}
}
}
}
Jenkinsfile
library identifier: 'genric.groovy@master', retriever: modernSCM([$class: 'GitSCMSource', credentialsId: '', remote: 'https://github.com/mani1soni/jenkins-practice.git', traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]])
pipeline{
agent any
environment{
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
}
stages{
stage('calling function'){
steps{
genric()
}
}
}
}
如何解决
忽略环境字段genric.groovy中使用的语法错误,此文件应放在共享库repo的vars文件夹中,并遵循以下链接“定义自定义步骤”部分中描述的语法:
您必须重写以下内容: vars/genric.groovy文件
call() {
sh'''
cd /home/manish/Desktop/test/
mkdir testing
'''
}
詹金斯档案
library identifier: 'genric.groovy@master', retriever: modernSCM([$class: 'GitSCMSource', credentialsId: '', remote: 'https://github.com/mani1soni/jenkins-practice.git', traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]])
pipeline{
agent any
environment{
REPO_PATH='/home/manish/Desktop'
APP_NAME='test'
}
stages{
stage('calling function'){
steps{
genric()
}
}
}
}
如果它已经在vars文件夹中,那么您应该遵循允许在groovy脚本上编写任何内容的语法,例如:def call(String name=“World”){echo(“Hello,${name}”)}在Dilip共享的链接中,它解释了您可以将vars文件夹与单个文件一起使用来定义步骤或定义整个管道定义(“定义声明性管道”部分。不能混合使用这两个部分。