JenkinsサーバーがLinuxマシンでJava= 1.7で実行されています。特定のプラグインを実行できるように、サーバーを1.8に変更する必要があります。
LinuxマシンにはJava 1.8 JDK/JREがインストールされていますが、Jenkinsサーバーにそれを使用するように指示する方法が見つかりませんか?Windowsサーバーにこれを行う方法のガイドを見つけましたが、 Linux Jenkinsサーバーに関連または転送するものはありません。
LinuxのJenkinsサーバーが使用するJREを変更する方法はありますか?
これの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が表示され、それを選択してプロジェクトをビルドできます。
ただし、サービス全体を別のVMから実行する場合は、少し注意が必要です。 Jenkins起動スクリプトは、VMを試して「推測」するように記述されているため、複数のLinuxフレーバーにまたがって簡単にインストールできます。起動スクリプトを見つけます(Red Hat RPMインストールでは、/ etc/rc.dに配置されます/init.d/jenkins)とそれを読みます。「candidates」というラベルの付いたセクションが見つかり、システム上でmightである可能性のあるJVMでループがどのように実行されるかがわかります。これを編集できますVM使用したい場合のみにリストし、停止/開始して強制的にVMを使用したい場合。スクリプトをコピーしてから念のために編集します。
Java_HOME
変数:
編集/etc/profile
お好みのテキストエディタで。
export Java_HOME="path to Java"
export PATH=$Java_HOME/bin:$PATH
その後
source /etc/profile
変更を適用するため。
これを行う1つの方法は、スタートアップファイルの編集:/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をJava 11がデフォルトとして設定されているUbuntuシステムで使用するようにするために、私がしなければならなかったものです。 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"
ジェンキンスを始める
これは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
を変更する必要があるため、これは私たちの目的のための最小限の変更でした。