Посоветовавшись со старшими специалистами на своем рабочем месте, я нашел решение, которое искал.
Проблема с этим кодом -
sh """
export earlist='abc.ear,def.ear'
echo $earlist;
"""
заключается в том, что когда я говорю $ earlist, компилятор ищет переменную groovy с именем earlist и не находит ее. Поскольку в earlist есть переменная оболочки, мне нужно экранировать $. Итак, правильный код -
sh """
earlist='abc.ear,def.ear'
echo \$earlist;
"""
Bonus TIL - если я получаю доступ к переменной groovy внутри блока оболочки, доступ будет только для чтения. Я не могу редактировать значение переменной groovy, даже временно внутри блока оболочки. Если я хочу это сделать, я могу назначить переменную groovy переменной оболочки, манипулировать значением переменной оболочки, сохранить измененное значение в файле, а когда блок оболочки завершится, прочитать файл в исходную переменную groovy.