Как установить JVM-вариант в Jenkins на глобальном уровне для каждой работы? - программирование
Подтвердить что ты не робот

Как установить JVM-вариант в Jenkins на глобальном уровне для каждой работы?

Недавно я установил новый JDK (1.7u9), и у меня появился очень странный VerifyError s. В потоке я обнаружил, что это может помочь мне, если я использую волшебный переключатель -XX:-UseSplitVerifier для компиляции.

Что бы я хотел сделать, так это установить эту опцию Java во всем мире в Jenkins, но не нашли для нее каких-либо конфигураций. Может кто-нибудь помочь мне, как я могу это сделать?

Ближайшая вещь, которую я смог придумать, - установить аргумент через Maven, но я должен сделать это для каждой конфигурации проекта, и я хотел бы избежать этого.

Спасибо заранее.

4b9b3361

Ответ 1

В главном пункте меню Manage JenkinsConfigure System вы можете установить его в поле для Global MAVEN_OPTS.

Немного неясно, хотите ли вы включить эту опцию для самого контейнера Jenkins или только выполняемых в нем заданий, но если последнее и вы выполняете только задания maven, то что бы я сделал.

Приветствия,

Ответ 2

Если вы развернете Jenkins в Tomcat или Glassfish, я хотел бы предложить вам установить следующую конфигурацию следующим образом: -

Tomcat

Задайте переменную среды с именем CATALINA_OPTS, например

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

The Glassfish

Отредактируйте [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

Надеюсь, это поможет.

Привет,

Charlee Ch.

Ответ 3

В Windows есть jenkins.xml в домашнем каталоге Jenkins. Просто добавьте необходимые параметры 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)

Ответ 4

По-видимому, единственный способ установить общесистемные JVM-свойства в Jenkins - это Groovy Script.

Создайте init.groovy.d в доме Дженкинса и поместите в него файл groovy (load-properties.groovy). В groovy script программно задайте системные свойства (подробнее см. Ссылку выше):

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

Вышеупомянутое решение сэкономило мой день, поскольку мне нужно отключить jsse.enableSNIExtension во время проверки SCM, и он должен быть доступен для плагина SVN, а не для Maven.

Там config.xml файл с тегами jdks/jdk/properties XML, но он недокументирован.