Как настроить задание Хадсона для использования конкретного JDK?
У меня есть ряд проектов, запущенных на подчиненном Hudson. Я хотел бы, чтобы один из них запускал Ant под Java6, а не по умолчанию (это Java5 в моей среде).
В представлении конфигурации проекта я надеялся найти:
- Явный параметр, позволяющий мне настроить пользовательское местоположение JDK для этого проекта.
- Способ установки настраиваемых переменных окружения для этого проекта, что позволит мне установить
JAVA_HOME в местоположение JDK6. Это сделало бы Ant забрать и запустить на Java6 по желанию.
Есть ли способ сделать это? Если доступно одно из этих объектов, я не вижу, как получить к нему доступ. Я бегу на Hudson 1.285.
Я предпочел бы избежать использования операции "выполнить оболочку" вместо операции "invoke Ant", если возможно: мой подчиненный находится в z/OS, и Хадсон, похоже, не создает временные сценарии оболочки на этой платформе (возможно, проблема с кодировкой).
Ответы
Ответ 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