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

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

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

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

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

2 ответов


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

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

I предложите первый или второй вариант


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