如何在Jenkins全局设置每个作业的JVM选项?

时间:2012-10-17 08:52:15

标签: java maven configuration jenkins jvm-arguments

我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪的VerifyErrorIn a thread我发现如果我使用-XX:-UseSplitVerifier魔术开关进行编译,它可以帮助我。

我想要做的是在Jenkins中全局设置此Java选项,但没有找到任何配置。有人可以帮我解决这个问题吗?

我能够提出的最接近的事情是通过Maven设置参数,但我必须为每个项目配置执行此操作 - 我想避免这种情况。

提前致谢。

4 个答案:

答案 0 :(得分:16)

在主菜单项Manage Jenkins - > Configure System下,您可以在Global MAVEN_OPTS的框中进行设置。

有点不清楚是否要为Jenkins容器本身打开选项或仅打开其中运行的作业,但如果后者并且您只运行maven作业,那就是我要做的。

干杯,

答案 1 :(得分:5)

如果您将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。

答案 2 :(得分:2)

在Windows上,Jenkins主目录中有 jenkins.xml 。只需在arguments标签下添加所需的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)

答案 3 :(得分:0)

显然,在Jenkins中设置系统范围JVM属性的唯一方法是使用Groovy Script

在Jenkins主页中创建一个init.groovy.d并在其中放置一个groovy文件(load-properties.groovy)。在Groovy脚本中,以编程方式设置系统属性(有关详细信息,请参阅link above):

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

以上解决方案节省了我的一天,因为我需要在SCM结帐时禁用jsse.enableSNIExtension,它应该可用于SVN插件,而不是Maven。

config.xml个文件带有jdks/jdk/properties个XML标记,但它没有记录。