web-dev-qa-db-ja.com

すべてのジョブに対してJenkinsでJVMオプションをグローバルに設定する方法は?

最近、新しいJDK(1.7u9)をインストールしましたが、非常に奇妙なVerifyErrorsを受け取りました。 スレッド内 コンパイルに-XX:-UseSplitVerifierマジックスイッチを使用すると役立つ場合があることがわかりました。

私がしたいことは、これをJavaオプションをJenkinsでグローバルに設定することですが、それに対する設定が見つかりませんでした。どうすればこれを行うことができますか?

私が思いつくことができた最も近いことは、Mavenを介して引数を設定することですが、プロジェクトの構成ごとに行う必要があります。それを避けたいのです。

前もって感謝します。

16
rlegendi

メインメニュー項目Manage Jenkins-> Configure SystemGlobal MAVEN_OPTS

Jenkinsコンテナ自体のオプションをオンにするか、コンテナで実行するジョブのみをオンにするかは少し不明確ですが、後者でMavenジョブのみを実行している場合は、それを実行します。

乾杯、

16

JenkinsをTomcatまたはGlassfishにデプロイする場合は、さらに構成を次のように設定することをお勧めします。

トムキャット

CATALINA_OPTSという名前の環境変数を設定します。

SET CATALINA_OPTS="-XX:-UseSplitVerifier"
EXPORT CATALINA_OPTS

グラスフィッシュ

[your_domain] /config/domain.xmlを編集します

<Java-config ....>
    ....
    <jvm-options>-XX:-UseSplitVerifier</jvm-options>
</Java-config>

とにかく、別のアプリケーションサーバーにデプロイする場合は、アプリケーションサーバー管理者ガイドを参照して、JVMオプションをさらに構成してください。

更新しました:

このJVMオプションをMavenプロジェクトにのみ適用する場合は、環境変数MAVEN_OPTSを設定してください。

SET MAVEN_OPTS="-XX:-UseSplitVerifier"
export MAVEN_OPTS

これがお役に立てば幸いです。

よろしく、

チャーリーCh。

5
Charlee Chitsuk

Windowsでは、Jenkinsホームディレクトリにjenkins.xmlがあります。必要なJVMオプションを引数タグの下に追加するだけです。

<arguments>
    -Xrs -Xmx256m -XX:-UseSplitVerifier 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080
</arguments>

ほとんどのLinuxディストリビューションでは、ファイル内でJENKINS_ARGSを変更します:/ etc/default/jenkins(またはjenkins-oc)

CentOSの場合、ファイル内でJENKINS_Java_OPTIONSを変更します:/ etc/sysconfig/jenkins(またはjenkins-oc)

2
Noam Manos

明らかに、Jenkinsでシステム全体のJVMプロパティを設定する唯一の方法は、 Groovy Script を使用することです。

init.groovy.dをJenkinsのホームに配置し、そこにグルーヴィーなファイルを配置します(load-properties.groovy)。 Groovyスクリプトで、システムプロパティをプログラムで設定します(詳細は 上記のリンク を参照)。

       props.each { key, value ->
        System.setProperty(key, value)

上記の解決策は、jsse.enableSNIExtension SCMのチェックアウト時に、MavenではなくSVNプラグインで使用できる必要があります。

あります config.xmlファイルとjdks/jdk/properties XMLタグですが、文書化されていません。

0