Сервер 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.
отредактируйте в базовой папке 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"
начать Дженкинс