У меня есть работа Maven в Дженкинсе. Перед фактическим этапом сборки у меня есть шаг предварительной сборки "Выполнение оболочки". В этой оболочке я устанавливаю переменную:
REVISION=$(cat .build_revision)
Я хотел бы использовать эту переменную в задании сборки Maven в "Цели и параметры":
clean install -Drevision=${REVISION}
Но это не работает! "Drevision" установлен на "$ {REVISION}", а не на фактическое значение ${REVISION}. Выход:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Drevision=${REVISION}
Он работает с переменными окружения Jenkins:
clean install -Dbuild=${BUILD_NUMBER}
Он устанавливает "Dbuild" в фактический номер сборки. Выход:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Dbuild=54
Мой вопрос: как использовать переменную оболочки в Maven "Цели и параметры"?
EDIT:
Я попытался использовать Jenkins EnvInject Plugin для "Внедрить переменные среды" после оболочки pre-build, и моя переменная теперь доступна, например, post-build shells, но он по-прежнему недоступен в Maven "Цели и параметры".
Затем можно установить "Инъекционные переменные среды для процесса сборки" с помощью EnvInject Plugin, что фактически делает эти переменные доступными в Maven "Цели и параметры", но они устанавливаются сразу после проверки SCM, строить шаги и не поддерживать оценки выражений.