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

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

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

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

Заранее спасибо.

4 ответа

Решение

Под главным пунктом меню Manage Jenkins->Configure System Вы можете установить его в поле для Global MAVEN_OPTS,

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

Ура,

Если вы развернете 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

Я надеюсь, что это может помочь.

С Уважением,

Чарли Ч.

В Windows в домашнем каталоге Jenkins есть файл jenkins.xml. Просто добавьте необходимые параметры JVM под тегом arguments:

<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)

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

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

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

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

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

Другие вопросы по тегам