slave.jar をインストールする前に環境変数を設定する

slave.jar をインストールする前に環境変数を設定する

取得したログは次のとおりです:

[09/25/15 11:02:03] [SSH] Opening SSH connection to XXXXXXX:22.
[09/25/15 11:02:04] [SSH] Authentication successful.
[09/25/15 11:02:04] [SSH] The remote users environment is:
ERRNO=22
FCEDIT=/bin/ed
HOME=/export/home/xxxx
IFS='   
'
LC_COLLATE=en_US
LC_CTYPE=en_US
LC_MESSAGES=C
LC_MONETARY=en_US
LC_NUMERIC=en_US
LC_TIME=en_US
LINENO=1
LOGNAME=xxxx
MAIL=/var/mail/xxxx
MAILCHECK=600
OPTIND=1
PATH=/usr/bin:/bin
PPID=27709
PS2='> '
PS3='#? '
PS4='+ '
PWD=/export/home/xxxx
RANDOM=23490
SECONDS=0
SHELL=/bin/ksh
SSH_CLIENT='xxx.xxx.xxx.xxx 63489 22'
SSH_CONNECTION=xxx.xxx.xxx.xxx 63489 xxx.xxx.xxx.xxx22'
TMOUT=0
TZ=Europe/Brussels
USER=scv2
_
[09/25/15 11:02:04] [SSH] Checking java version of java
[09/25/15 11:02:04] [SSH] java -version returned 1.5.0_38.
[09/25/15 11:02:04] [SSH] Starting sftp client.
[09/25/15 11:02:05] [SSH] Copying latest slave.jar...

[09/25/15 11:02:05] [SSH] Copied 489.023 bytes.
Expanded the channel window size to 4MB
[09/25/15 11:02:05] [SSH] Starting slave process: cd "./jenkins-slave" && java  -jar slave.jar

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)

実行前にJenkinsで正しい変数を設定する方法はありますかjava -jar slave.jar?Jenkinsのノードプロパティセクションで環境変数を設定しようとしましたが、スレーブのインストール前には適用されません。(これを参照してくださいバグレポート

Jenkins が事前に行う必要があるのは、java -jar slave.jar以下を実行することだけです。

JAVA_HOME=/opt/app/java17; export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH; export PATH

これどうやってするの?

答え1

それを見つけた。

いくつかのフォーラム投稿で提案されているようなプラグイン (いずれにしても機能しない) は必要ありません。スレーブへの接続に使用される資格情報の詳細プロパティで JavaPath を指定するだけで済みます。

ここに画像の説明を入力してください

答え2

Jenkins のバージョンを更新すると、問題は解決します。それ以外の場合は、これが私の場合は機能しました (Jenkins 1.6、ビルド/テスト ノード: macOS Mojave):

まずjava8をインストールしますビルド/テストノードで次のコマンドを使用します:

brew update
brew cask install caskroom/versions/java8

次にJenkinsのWebパネルでビルド/テストノードをクリックし、構成、設定そして、高度な...ボタンをクリックすると、複数のテキスト フィールドが表示されます。次に、JavaPath フィールドに java8 へのパスを追加します。

私にとってこの道は次のようなものです:

/Library/Java/JavaVirtualMachines/jdk1.8.X_XXX.jdk/Contents/Home/bin/java

注記:X_XXX事前に Java8 バージョンに置き換えておくことを忘れないでください。

それから保存

その後、ビルド/テスト ノードを切断し、再度接続します。これで問題は解決するはずです。

ソース

関連情報