У меня есть фрагмент кода, который прекрасно работает во всех известных мне интерпретаторах, включая консоль сценариев Jenkins.И все же это странное поведение, когда дело доходит до конвейерных скриптов.
def kvs = ['key1': 'value1', 'key2': 'value2']
println kvs
println kvs.inject(''){ s,k,v -> s+= "{'$k': '$v' } "}
Прежде всего, карта печатается по-другому:
- Ожидается :
[key1:value1, key2:value2]
- Получено :
{key1=value1, key2=value2}
Тогда, более проблемный, полученный результат резко отличается:
- Ожидается :
{'key1': 'value1' } {'key2': 'value2' }
- Получено :
null
Оба эти результата были получены с использованием следующей версии Groovy: 2.4.12
.(Хотя, кроме сценария конвейера, я также пробовал версии 2.4.6
и 2.4.15
и всегда получал ожидаемые результаты)
Обратите внимание, что меня не интересуют обходные пути.Я только хочу понять, почему поведение изменилось с обычного groovy на конвейерный скрипт.