web-dev-qa-db-fra.com

Comment définir une option JVM dans Jenkins globalement pour chaque travail?

J'ai récemment installé un nouveau JDK (1.7u9) et j'ai eu quelques noms très étranges, VerifyErrors. Dans un fil J'ai découvert que cela pourrait m'aider si j'utilise un commutateur magique -XX:-UseSplitVerifier pour la compilation.

Ce que je voudrais faire est de définir cette option Java globalement dans Jenkins, mais je n'ai trouvé aucune configuration pour cela. Quelqu'un peut-il m'aider, comment puis-je faire cela?

La chose la plus proche que j'ai pu trouver est de régler l'argument par l'intermédiaire de Maven, mais je dois le faire pour chaque configuration de projet - et j'aimerais éviter cela.

Merci d'avance.

16
rlegendi

Sous l’option du menu principal Manage Jenkins-> Configure System, vous pouvez la définir dans la zone pour Global MAVEN_OPTS

Il est un peu difficile de savoir si vous souhaitez activer l'option pour le conteneur Jenkins lui-même ou uniquement les tâches qui y sont exécutées, mais si ce dernier et que vous n'exécutez que des tâches génériques, c'est ce que je ferais.

À votre santé,

15
Anders R. Bystrup

Si vous déployez le Jenkins sur le Tomcat ou le Glassfish, j'aimerais vous suggérer de définir une configuration supplémentaire comme suit: -

Le tomcat

Définissez la variable d'environnement nommée CATALINA_OPTS , par exemple.

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

Le Glassfish

Editez le [votre_domaine] /config/domain.xml

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

Quoi qu'il en soit, si vous le déployez sur un autre serveur d'applications, veuillez vous reporter au guide de l'administrateur de votre serveur d'applications pour configurer d'autres options JVM.

MIS À JOUR:

Si vous souhaitez uniquement appliquer cette option JVM au projet Maven, définissez la variable d'environnement nommée MAVEN_OPTS , par exemple.

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

J'espère que cela peut aider.

Cordialement,

Charlee Ch.

5
Charlee Chitsuk

Sous Windows, il existe un répertoire jenkins.xml dans le répertoire personnel Jenkins. Ajoutez simplement les options JVM requises sous la balise arguments:

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

Pour la plupart des distributions Linux, modifiez JENKINS_ARGS à l'intérieur du fichier: /etc/default/jenkins (ou jenkins-oc)

Pour CentOS, modifiez JENKINS_Java_OPTIONS dans le fichier: /etc/sysconfig/jenkins (ou jenkins-oc)

2
Noam Manos

Apparemment, le seul moyen de définir des propriétés de machine virtuelle Java à l’échelle du système dans Jenkins est d’utiliser un Groovy Script .

Créez un init.groovy.d dans la maison Jenkins et placez-y un fichier groovy (load-properties.groovy). Dans le script Groovy, définissez les propriétés du système par programmation (voir le lien ci-dessus pour plus de détails):

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

La solution ci-dessus m'a permis d'économiser ma journée, car je devais désactiver jsse.enableSNIExtension lors de la vérification du SCM. Cette option devrait être disponible pour le plug-in SVN, pas pour Maven.

Il existe un fichier config.xml avec des balises XML jdks/jdk/properties, mais il n'est pas documenté.

0