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

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

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

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

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

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

9 ответов


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

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


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

поэтому лучшим решением для меня было:

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

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

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


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


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

Управление Узлами > Ведомый > Настройка > Переменные Среды

имя: переменной JAVA_HOME Значение: C:\Program файлы (x86)\Java\jdk1.6.0_45\


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

  1. установите все необходимые JDKs в вашу систему.
  2. добавьте их в jenkins под заголовком JDK на странице конфигурации.
  3. установить Maven Info плагин для jenkins
  4. перезапустить jenkins
  5. перейти на страницу конфигурации задания.
  6. выберите требуемый JDK из поля со списком JDK в разделе Конфигурация плагина Maven Info
  7. построить
  8. наслаждайтесь!!!

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

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

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

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

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


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

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

пример:

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

путь=%переменной JAVA_HOME%/бин;%путь%

АНТ.в XML

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


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

Я добавил путь JDK к конфигурациям Дженкинса:

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

также , Изменить jenkins-runner.sh: Добавить строку:

экспорт переменной JAVA_HOME=""

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

Эхо "как/bin/java" в $javaArgs -банку "$войны" $параметр args

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