В вашем коде отсутствует закрывающий вызов. Первое, на что стоит обратить внимание: карта, которую вы создаете, имеет следующий тип:
Map<String,Closure> map = generateStageMap(jobs)
Код, который вы поместили в конце вашего примера, ничего не делает.
map.each {
it.value
}
Он только «касается» значения, хранящегося на карте, но не вызывает закрытие, которое он удерживает. Самый простой способ получить ожидаемый результат - вызвать закрытие. Вы можете сделать это, вызвав метод call()
:
map.each {
it.value.call()
}
или просто добавив ()
в конец выражения:
map.each {
it.value()
}
Оба вызовут замыкания и произведут ожидаемый результат.