java maven configuration jenkins jvm-arguments

java - ¿Cómo configurar una opción JVM en Jenkins globalmente para cada trabajo?



maven configuration (4)

Recientemente instalé un nuevo JDK (1.7u9), y obtuve algunos VerifyError muy extraños. En un hilo encontré que podría ayudarme si utilizara un interruptor mágico -XX:-UseSplitVerifier para la compilación.

Lo que me gustaría hacer es configurar esta opción de Java globalmente en Jenkins, pero no he encontrado ninguna configuración para ella. ¿Puede alguien ayudarme cómo puedo hacer esto?

Lo más cercano que pude encontrar es establecer el argumento a través de Maven, pero tengo que hacerlo para cada configuración de proyecto, y me gustaría evitar eso.

Gracias por adelantado.


Aparentemente, la única forma de establecer las propiedades JVM de todo el sistema en Jenkins es con un script Groovy .

Cree un init.groovy.d en la casa de Jenkins y coloque un archivo groovy en él ( load-properties.groovy ). En la secuencia de comandos Groovy, establezca las propiedades del sistema mediante programación (vea el enlace arriba para obtener detalles):

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

La solución anterior me salvó el día, ya que necesitaba deshabilitar jsse.enableSNIExtension durante la comprobación de SCM y debería estar disponible para el complemento SVN, no para Maven.

Hay un archivo config.xml con jdks/jdk/properties XML, pero no está documentado.


Bajo el elemento del menú principal Manage Jenkins -> Configure System , puede configurarlo en el cuadro para Global MAVEN_OPTS .

No está claro si desea que la opción esté activada para el contenedor de Jenkins o solo los trabajos que se ejecutan en él, pero si este último y usted solo están ejecutando trabajos de Maven, eso es lo que haría.

Aclamaciones,


En Windows hay un archivo jenkins.xml en el directorio de inicio de Jenkins. Simplemente agregue las opciones de JVM requeridas en la etiqueta de argumentos:

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

Para la mayoría de las distribuciones de Linux, modifique JENKINS_ARGS dentro del archivo: / etc / default / jenkins (o jenkins-oc)

Para CentOS, modifique JENKINS_JAVA_OPTIONS dentro del archivo: / etc / sysconfig / jenkins (o jenkins-oc)


Si implementa Jenkins en Tomcat o Glassfish, me gustaría sugerirle que establezca una configuración adicional como la siguiente:

El tomcat

Establezca la variable de entorno llamada CATALINA_OPTS , por ejemplo,

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

El pez de cristal

Edite el [su_dominio] /config/domain.xml

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

De todos modos, si lo implementa en otro servidor de aplicaciones, consulte la guía del administrador del servidor de aplicaciones para configurar otras opciones de JVM.

ACTUALIZADO:

Si solo desea aplicar esta opción JVM al proyecto de Maven, configure la variable de entorno denominada MAVEN_OPTS , por ejemplo

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

Espero que esto pueda ayudar.

Saludos,

Charlee ch.