Назад | Перейти на главную страницу

Есть ли способ изменить java JRE, который использует сервер Linux Jenkins?

Сервер Jenkins работает под Java 1.7 на Linux-машине, и мне нужно изменить его на 1.8, чтобы я мог запускать определенный плагин.

На машине Linux установлена ​​Java 1.8 JDK / JRE, но я не могу найти способ указать серверу Jenkins ее использовать? Я нашел руководства на серверах Windows, как это сделать, но ничего, что связано с серверами Linux Jenkins или переносится на них.

Есть ли способ изменить JRE, используемую сервером Jenkins в Linux?

Как версия для Linux: https://dzone.com/articles/make-jenkins-windows-service

В зависимости от дистрибутива у вас будет один из «/ etc / sysconfig / jenkins» или «/ etc / default / jenkins».

У этого будет свойство установить домашнее местоположение Java. Обычно все параметры закомментированы, чтобы показать, что файл может настраивать.

На главной странице Jenkins слева щелкните «Manage Jenkins». Войдите в меню «Global Tool Configuration», и в этом меню примерно на полпути есть место, где должно быть написано «JDK Installations». Нажмите эту кнопку, и откроется новое меню, в котором вы можете добавить альтернативный JDK. После добавления вы заходите в проект, который хотите построить, и нажимаете «Настроить». Опять же, примерно на полпути вниз будет выпадающее «JDK». Теперь появится новый JDK, и вы можете выбрать его для сборки проекта.

Однако, если вы имеете в виду, что хотите, чтобы вся служба запускалась с другой виртуальной машины, это немного сложнее. Сценарий запуска Jenkins написан, чтобы попытаться «угадать» вашу виртуальную машину, чтобы упростить ее установку в нескольких вариантах Linux. Найдите сценарий запуска (при установке Red Hat RPM он помещается в /etc/rc.d/init.d/jenkins) и прочтите его. Вы найдете раздел под названием «кандидаты» и заметите, как цикл проходит через возможные JVM, которые мощь быть в системе. Вы можете отредактировать этот список, указав только виртуальную машину, которую вы хотите использовать, а затем остановить / запустить, чтобы заставить ее использовать нужную виртуальную машину. На всякий случай обязательно скопируйте сценарий перед его редактированием.

Определить JAVA_HOME переменная:

редактировать /etc/profile с вашим любимым текстовым редактором.

export JAVA_HOME="path to java"
export PATH=$JAVA_HOME/bin:$PATH

затем

source /etc/profile

чтобы применить изменения.

Это характерно для версии установщика Macintosh (в интересах тех, кто был приведен сюда, как и я, с помощью веб-поиска), и путь зависит от версии Java, которую хочет запустить Jenkins, которая должна сосуществовать с Java версия, которую нам нужно протестировать. Это уродливо, но менее уродливо, чем то, что было там (дублированный жестко запрограммированный путь), или чем любое другое предложение, которое я смог найти.

Я добавил / изменил следующее в начале и в конце /Library/Application\ Support/Jenkins/jenkins-runner.sh:

javaBin=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java
…
echo $javaBin $javaArgs -jar "$war" $args
exec $javaBin $javaArgs -jar "$war" $args

Конечно, было бы лучше, если бы это было в org.jenkins-ci.plist, но это все равно потребует изменений в jenkins-runner.sh, так что это было минимальное изменение для наших целей.

Один из способов добиться этого - редактирование файла запуска: /etc/init.d/jenkins.

По умолчанию просто запустить java, таким образом полагаясь на то, что находится в переменной среды PATH. Вы можете указать собственный исполняемый файл Java, отредактировав строку:

`/etc/init.d/jenkins`

кому:

JAVA='/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java'

Затем вы должны бежать systemctl daemon-reload для того, чтобы изменения были подхвачены.

Это то, что мне пришлось сделать, чтобы заставить Jenkins использовать Java 8 в системе Ubuntu с Java 11, установленным по умолчанию. Для меня было неприемлемо просто apt remove openjdk-11-jdk-headless или update-alternatives --config java и выберите Java 8 по умолчанию. Предостережение при редактировании файла запуска заключается в том, что он может быть перезаписан при обновлении Jenkins: мне придется следить за ним.

Это для пользователей Windows, которые случайно наткнулись на этот вопрос (как и я). Вам необходимо установить переменную системной среды JAVA_HOME.

  1. остановить службу Дженкинса
  2. отредактируйте в базовой папке jenkins отредактируйте jenkins.xml - в этой строке "% JAVA_HOME% \ jre \ bin \ java" измените% BASE% на% JAVA_HOME%

    % JAVA_HOME% \ jre \ bin \ java -Xrs -Xmx256m -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "% BASE% \ jenkins.war" --httpPort = 8080 --webroot = "% BASE% \ war"

  3. начать Дженкинс