【发布时间】:2021-03-02 10:05:58
【问题描述】:
共享库中的新手, 我对Jenkins document“动态加载库”部分感到困惑。
关注Stackoverflow_answer,但我有一些不同的需求,只是想用一个参数从库调用一个函数到管道。
注意: Jenkins 库配置正确,库访问已通过另一个示例使用call 方法进行检查
vars/foo.groovy 包含函数
//{Root}/vars/foo.groovy
def Foo_Func(Body){
Body= Body + "This is a Message from Shared Lib."
return Body
}
Body 变量已经定义到主管道'bar.jenkinsfile'
我真正的问题是如何在不使用 call 方法的情况下从foo.groovy 调用函数,
我试过关注 -
//somefolder_in_scm/bar.jenkinsfile
@Library('jenkins-shared-libs') _
def Body_Main=""
deg SUBJECT="Title 1"
def NativeReceivers = "abc@xyz.com"
pipeline{
node any
stage{
script {
/*Some script*/
}
}
post {
always {
script {
foo.Foo_Func(Body_Main)
// send email
emailext attachLog: true,
mimeType: 'text/html',
subject: SUBJECT,
body: Body_Main,
to: NativeReceivers
}
}
}
}
由于我使用了_,我希望不需要导入。
触发管道后发生的错误,
groovy.lang.MissingMethodException: No signature of method: java.lang.Class.Foo_Func() is applicable for argument types:
在错误中,为什么函数Foo_Func被视为一个类?可能需要以不同的方式给出论点。
任何帮助表示赞赏。
【问题讨论】:
标签: jenkins shared-libraries jenkins-groovy