web-dev-qa-db-ja.com

特定のJDKを使用するようにHudsonジョブを構成するにはどうすればよいですか?

Hudsonスレーブで実行しているプロジェクトがいくつかあります。それらの1つで、デフォルト(私の環境ではJava5)ではなく、Java6でAntを実行してください。

プロジェクト構成ビューで、私は次のいずれかを見つけることを望んでいました:

  • このプロジェクトで使用するカスタムJDKの場所を設定できる明示的なオプション。
  • このプロジェクトのカスタム環境変数を設定する方法。これにより、Java_HOMEをJDK6の場所に設定できます。これにより、Antが必要に応じてJava6で動作するようになります。

上記のいずれかを行う方法はありますか?これらの機能の1つが利用可能である場合、そのアクセス方法がわかりません。 Hudson 1.285で実行しています。

可能であれば、「Antoke」操作ではなく「Shell実行」操作の使用を避けます。私のスレーブはz/OS上にあり、Hudsonはこのプラットフォームで一時シェルスクリプトを正しく作成していないようです(おそらくエンコードの問題です) )。

30
rewbs

ビルドをパラメーター化すると、追加したすべての文字列パラメーターが環境変数になることがわかります。このアプローチを使用すると、Antによって取得されるJava_HOMEを含む、ビルドの環境変数を設定できます。

だから私にとって最良の解決策は:

  1. ジョブ設定ページで、「このビルドはパラメーター化されています」にチェックを入れます
  2. Java_HOMEという新しい文字列パラメーターを追加し、デフォルト値をJDKの場所に設定します

ビルド文字列パラメーターが環境変数になるかどうかは明らかではありませんが、環境変数になるとわかったら、この方法でJDKを設定するのは簡単です。

Hudsonメーリングリストの開発者 推奨される別のアプローチ マスターJDK構成を使用し、ノード構成でオーバーライドします...しかし、Java_HOME env varを設定するだけで簡単に思えます。

25
rewbs

Hudsonインスタンスで使用するためにJava 5とJava 6の両方が設定されています。

「Hudsonの管理」->「構成システム」で、いくつかのJDKを追加し、Java_HOMEのパスを指定できます。次に、各ジョブの構成で、そのジョブを実行するJDKを選択しました。

27
Mark

個々のスレーブエージェントは、それらを実行するシステムで特定のJDKを使用するように構成できます。

ノードの管理>スレーブ>構成>環境変数

例えば

名前:Java_HOME値:C:\ Program Files(x86)\ Java\jdk1.6.0_45 \

2
Obaid

この問題は、2つの異なるJava Hudsonノードを使用して管理しました。1つはJava 6用、もう1つはJava 7.用です。必要に応じて、ジョブを異なるノードに割り当てました。

2
Ralph

最善の方法は、

  1. 必要なすべてのJDKをシステムにインストールします。
  2. それらを設定ページのJDKタイトルの下のjenkinsに追加します。
  3. Maven Infoプラグインをjenkinsにインストールする
  4. ジェンキンスを再起動する
  5. ジョブ構成ページに移動します。
  6. JDKコンボボックスから必要なJDKを選択し、Maven Info Plugin Configurationの下に表示されます。
  7. それを作る
  8. 楽しい!!!
1
javatar

このように使えます。

バッチコマンドウィンドウでは、最初に変数名Java_HOMEを設定できます。このカスタム変数名をPATH変数に割り当てます。次に、antスクリプトを呼び出して特定のファイルを選択できます。

例:

set Java_HOME = C:/Java/jdk1.6.1

PATH =%Java_HOME%/ bin;%PATH%

ant build.xml

0
Srinivas

インストールされているJDKがJDK 8であるという問題がありましたが、JenkinsがJDK 7を使用することを望んでいました。したがって、JDK 7をJenkinsビルドボックスにインストールした後、

Jenkins構成にJDKパスを追加しました。

Jenkins-> Jenkinsの管理->システムの構成-> JDK-> JDK名とパスを追加

また、jenkins-runner.shを編集します。次の行を追加します。

java_HOME = ""をエクスポート

最後の2行を読み取るように変更します。

echo "/ bin/Java" $ javaArgs -jar "$ war" $ args

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

0
diptia

Setenvプラグインをご覧ください。そこで、Java_HOME = C:/Java/jdk1.6.1 PATH =%Java_HOME%/ bin;%PATH%のような変数を設定できます。

0
johannes

このプロジェクトのカスタム環境変数を設定する方法。これにより、Java_HOMEをJDK6の場所に設定できます。これにより、Antが必要に応じてJava6で動作するようになります。

Antのビルドステップを構成するときに、[Avoke Ant]で[Advanced]をクリックすると、カスタムJava=オプションを設定できます。画面上のヘルプでは次のように述べています。

ビルドでカスタムANT_OPTSが必要な場合は、ここで指定します。通常、これはJava使用するメモリ制限、たとえば-Xmx512mを指定するために使用できます。他のAntオプション(-libなど)は[Antターゲット]フィールドに移動する必要があります。

ただし、これはJDKが動作するためには機能しないと感じています。

Manage Hudson/Configure Systemの下で、このHudsonインスタンスの複数のJDKインストールを構成しましたか?

0
matt b