Подтвердить что ты не робот

Как настроить задание Хадсона для использования конкретного JDK?

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

Управление узлами > Ведомый > Конфигурация > Переменные среды

Например

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

Ответ 5

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

  • Установите все необходимые JDK в вашу систему.
  • Добавьте их в jenkins под заголовком JDK на странице конфигурации.
  • Установите плагин Maven Info в jenkins
  • Перезапустить jenkins
  • Перейдите на страницу конфигурации своей работы.
  • Выберите требуемый JDK из поля со списком JDK в разделе Конфигурация Maven Info Plugin
  • Построить его
  • Наслаждайтесь!!!

Ответ 6

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

При настройке шагов сборки для Ant в разделе "Invoke Ant", если вы нажмете "Дополнительно", вы можете установить пользовательские параметры Java. Экранная справка говорит:

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

У меня такое чувство, что это не сработает для JDK.

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

Ответ 7

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

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

Пример:

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

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

ant build.xml

Ответ 8

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

Ответ 9

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

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

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

Кроме того, Редактировать jenkins-runner.sh: Добавьте строку:

экспорт JAVA_HOME = ""

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

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

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