it-swarm.com.de

Wie kann in Jenkins für jeden Job eine JVM-Option global festgelegt werden?

Ich habe kürzlich ein neues JDK (1.7u9) installiert, und ich habe einige sehr seltsame VerifyErrors. In einem Thread Ich fand, dass es mir helfen könnte, wenn ich einen magischen -XX:-UseSplitVerifier-Schalter für die Kompilierung verwende.

Ich möchte diese Java-Option global in Jenkins festlegen, habe aber keine Konfigurationen dafür gefunden. Kann mir jemand helfen, wie ich das machen kann?

Das Nächste, was mir einfiel, war, das Argument durch Maven zu setzen, aber ich muss es für jede Projektkonfiguration tun - und das möchte ich vermeiden.

Danke im Voraus.

16
rlegendi

Unter dem Hauptmenüpunkt Manage Jenkins-> Configure System können Sie es in der Box für Global MAVEN_OPTS einstellen. 

Es ist ein wenig unklar, ob die Option für den Jenkins-Container selbst aktiviert werden soll oder nur die Jobs, die darin ausgeführt werden, aber wenn letzterer und Sie nur Maven-Jobs ausführen, würde ich das tun.

Prost,

15

Wenn Sie die Jenkins für den Tomcat oder Glassfish bereitstellen, möchte ich Ihnen folgende Konfiguration vorschlagen: -

Der Kater

Legen Sie die Umgebungsvariable mit dem Namen CATALINA_OPTS fest, z.

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

Der Glasfisch

Bearbeiten Sie die [Ihre_Domäne] /config/Domäne.xml

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

Wenn Sie es auf einem anderen Anwendungsserver bereitstellen, lesen Sie bitte das Administratorhandbuch Ihres Anwendungsservers, um weitere JVM-Optionen zu konfigurieren.

AKTUALISIERTE:

Wenn Sie diese JVM-Option nur auf das Maven-Projekt anwenden möchten, setzen Sie die Umgebungsvariable mit dem Namen MAVEN_OPTS , z.

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

Ich hoffe das kann helfen.

Grüße,

Charlee Ch.

5
Charlee Chitsuk

Unter Windows befindet sich im Home-Verzeichnis von Jenkins ein jenkins.xml. Fügen Sie einfach die erforderlichen JVM-Optionen unter arguments tag hinzu:

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

Ändern Sie für die meisten Linux-Distributionen JENKINS_ARGS inside-Datei: / Etc/default/jenkins (oder jenkins-oc)

Ändern Sie für CentOS JENKINS_Java_OPTIONS in der Datei: / Etc/sysconfig/jenkins (oder jenkins-oc)

2
Noam Manos

Offensichtlich besteht die einzige Möglichkeit, systemweite JVM-Eigenschaften in Jenkins festzulegen, mit einem Groovy Script .

Erstellen Sie einen init.groovy.d in Jenkins Home und platzieren Sie eine groovige Datei (load-properties.groovy). Legen Sie im Groovy-Skript die Systemeigenschaften programmgesteuert fest (siehe Link oben für Details):

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

Die obige Lösung hat meinen Tag gespart, da ich jsse.enableSNIExtension während der SCM-Prüfung deaktivieren musste. Es sollte für das SVN-Plugin verfügbar sein, nicht für Maven.

Es gibt eine config.xml-Datei mit jdks/jdk/properties-XML-Tags, die jedoch nicht dokumentiert ist.

0