Я хочу иметь возможность добавить обратный вызов в качестве параметра в сценарий Jenkins Groovy.Я думаю, что закрытие - это то, что мне нужно, но я не знаю, как это сделать.Вот вывод, который я хочу:
enter
hello
exit
JenkinsFile:
def rootDir = pwd()
def tools = load "${rootDir}\\patchBuildTools.groovy"
mainMethod(tools.testCl("hello"))
patchBuildTools.groovy
def mainMethod(Closure test) {
println "enter"
test()
println "exit"
}
def testCl(String message) {
println message
}
Это дает мне выход:
hello
enter
java.lang.NullPointerException: Cannot invoke method call() on null object
Возможно ли получить заказ на звонок, который я хочу?
Обновление - на основе ответа
JenkinsFile:
def rootDir = pwd()
def tools = load "${rootDir}\\patchBuildTools.groovy"
mainMethod("enter", "exit")
{
this.testCl("hello")
}
patchBuildTools.groovy
def mainMethod(String msg1, String ms2, Closure test) {
println msg1
test()
println ms2
}
def testCl(String message) {
println message
}