Как я могу настроить работу Hudson для использования определенного JDK? - PullRequest
30 голосов
/ 14 апреля 2009

У меня есть несколько проектов, работающих на подчиненном Hudson. Я бы хотел, чтобы один из них запускал Ant под Java6, а не по умолчанию (в моем окружении это Java5).

В представлении конфигурации проекта я надеялся найти либо:

  • Явная опция, позволяющая мне установить пользовательское расположение JDK для использования в этом проекте.
  • Способ установки пользовательских переменных среды для этого проекта, который позволил бы мне установить JAVA_HOME в расположение JDK6. Это заставит Ant взять и запустить на Java6 по желанию.

Есть ли способ сделать что-либо из вышеперечисленного? Если одно из этих средств доступно, я не вижу, как получить к нему доступ. Я бегу на Гудзоне 1.285.

Я бы предпочел не использовать операцию «execute shell» вместо операции «invoke Ant», если это возможно: мой подчиненный работает на z / OS, и Хадсон, похоже, не создает временные сценарии оболочки должным образом на этой платформе (возможно, проблема кодировки).

Ответы [ 9 ]

27 голосов
/ 14 апреля 2009

У нас есть и Java 5, и Java 6, настроенные для использования в нашем экземпляре Hudson.

В разделе Manage Hudson -> Configuration System вы можете добавить несколько JDK и указать путь для JAVA_HOME. В конфигурации для каждого задания вы затем выбрали JDK, на котором вы хотите запустить это задание.

25 голосов
/ 13 августа 2009

Оказывается, что если вы сделаете сборку параметризованной, любые строковые параметры, которые вы добавите, станут переменными окружения. При таком подходе можно установить любую переменную среды для сборки, в том числе JAVA_HOME, которая принимается Ant.

Так что лучшим решением для меня было:

  1. На странице конфигурации задания отметьте «Эта сборка параметризована»
  2. Добавить новый параметр String с именем JAVA_HOME и значением по умолчанию, установленным в расположение JDK

Не очевидно, что параметры строки сборки становятся переменными среды, но как только вы узнаете, что они это делают, JDK легко установить таким образом.

Разработчики из списка рассылки Hudson рекомендовали другой подход с использованием основных конфигураций JDK и переопределений в конфигурациях узла ... но мне просто проще установить JAVA_HOME env var.

2 голосов
/ 14 июня 2013

Отдельные подчиненные агенты могут быть настроены на использование определенных JDK в системе, в которой они запущены.

Управление узлами> Подчиненный> Настроить> Переменные среды

Например

Имя: JAVA_HOME Значение: C: \ Program Files (x86) \ Java \ jdk1.6.0_45 \

2 голосов
/ 25 апреля 2012

Мы решили эту проблему с помощью двух разных узлов Java Hudson. Один для Java 6 и один для Java 7. Затем мы назначили задания различным узлам в соответствии с потребностями.

1 голос
/ 19 января 2015

Лучший способ,

  1. Установите все необходимые JDK в вашу систему.
  2. Добавьте их в jenkins под заголовком JDK на странице конфигурации.
  3. Установите плагин Maven Info для jenkins
  4. Перезагрузите Дженкинс
  5. Перейдите на страницу конфигурации вашей работы.
  6. Выберите требуемый JDK в поле со списком JDK, которое отображается в разделе Настройка подключаемого модуля Maven Info
  7. Построить
  8. Наслаждайтесь !!!
0 голосов
/ 04 ноября 2015

У меня была проблема, когда установленный JDK был JDK 8, тогда как я хотел, чтобы Jenkins использовал JDK 7. Итак, после установки JDK 7 на сборочную коробку Jenkins,

Я добавил путь JDK в конфигурации jenkins:

Jenkins -> Управление Jenkins -> Настройка системы -> JDK -> Добавить имя JDK и путь

Также Отредактируйте jenkins-runner.sh: Добавьте строку:

export JAVA_HOME = ""

Изменить две последние строки следующим образом:

echo "/ bin / java" $ javaArgs -jar "$ war" $ args

exec "/ bin / java" $ javaArgs -jar "$ war" $ args

0 голосов
/ 27 мая 2010

Взгляните на плагин Setenv. Там вы можете установить переменные, такие как JAVA_HOME = C: /java/jdk1.6.1 PATH =% JAVA_HOME% / бен;% PATH%

0 голосов
/ 04 августа 2009

вы можете использовать как это.

в окне пакетных команд изначально вы можете установить имя переменной JAVA_HOME, присвоить этому имени пользовательской переменной переменную PATH. тогда вы можете вызвать ant-скрипт для выбора конкретного файла.

Пример:

установить JAVA_HOME = C: /java/jdk1.6.1

PATH =% JAVA_HOME% / бен;% PATH%

ant build.xml

0 голосов
/ 14 апреля 2009

Способ установки пользовательских переменных среды для этого проекта, который позволил бы мне установить JAVA_HOME в расположение JDK6. Это заставит Ant взять и запустить на Java6 по желанию.

При настройке шагов сборки для Ant в «Invoke Ant», если вы нажмете «Advanced», вы можете установить пользовательские параметры Java. Справка на экране гласит:

Если для вашей сборки требуется пользовательский ANT_OPTS, укажите его здесь. Как правило, это может использоваться для указания пределов памяти Java, которые следует использовать, например -Xmx512m. Обратите внимание, что другие опции Ant (такие как -lib) должны идти в поле «Ant target».

Однако я чувствую, что JDK не будет работать под ним.

Вы настроили несколько установок JDK для этого экземпляра Hudson в Manage Hudson / Configure System?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...