Установите переменную среды перед выполнением maven (в сборке jenkins)

Я настраиваю подчиненное устройство jenkins на машине, которая должна построить проект maven, содержащий некоторый собственный C-код. Сама машина, однако, является проблемой. На машине размещена довольно старая программа, в которой используется множество переменных окружения, таких как JAVA_HOME, что maven должно функционировать должным образом. Чтобы запустить maven на подчиненном компьютере, мне нужно установить эти переменные среды, прежде чем выполнять maven, или maven, и другие зависимости, например ssh, не будут выполняться. Я не могу просто изменить переменные навсегда, поэтому мне нужно изменить переменную en environment перед выполнением сборки maven.

Я могу выполнить сборку вручную, установив переменные среды перед выполнением mvn, и сборка работает как шарм. Но мне нужно, чтобы jenkins автоматически запускали сборку.

Как я вижу, мне нужно: Настройка jenkins для установки переменных среды перед выполнением maven или Настройте maven для использования определенных значений вместо определенных переменных среды (таким образом, чтобы jenkins мог обрабатывать выполнение)

Ваша помощь очень ценится.

Ответ 1

Есть много вариантов.

  • Настройте node, чтобы установить переменную среды (в node свойствах, проверьте "переменные среды" )
  • для инструментов Дженкинс сам установил необходимые среды. В конфигурации node вы можете установить разные пути для инструментов, настроенных в основной конфигурации (в свойствах node, проверьте "Местоположение инструмента" ), я считаю, что вам не нужен плагин для этой опции.
  • Используйте EnvInject plugin (Setenv Plugin является устаревшее)
  • Используйте Envfile Plugin
  • задайте переменные окружения перед запуском Maven. Вам нужно иметь оба на одном этапе сборки. (наихудшее решение)
  • создать конфигурацию java/maven, которая действительна только для этого node и использовать ее в вашей работе. Это работает, только если ваша работа выполняется только на специальном node и нигде больше.

Я предлагаю первый или второй вариант

Ответ 2

Я думаю, что Дженкинс мог бы поддерживать настройку переменных окружения через пользовательский интерфейс для настройки заданий. Если нет, вы можете написать script, который установил вашу среду, и запустите jenkins, выполнив это задание script.