如何在 Jenkins 中为每个作业全局设置 JVM 选项



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

我想做的是在 Jenkins 中全局设置此 Java 选项,但尚未找到任何配置。有人可以帮助我如何做到这一点吗?

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

提前谢谢。

在主菜单项Manage Jenkins -> Configure System 下,您可以在框中将其设置为Global MAVEN_OPTS

目前还不清楚您是希望为 Jenkins 容器本身打开该选项,还是只打开在其中运行的作业,但如果后者并且您只运行 maven 作业,那就是我会做的。

干杯

如果你将 Jenkins 部署到 Tomcat 或 Glassfish,我建议你进一步设置如下配置:

雄猫

设置名为 CATALINA_OPTS 的环境变量,例如

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

玻璃鱼

编辑 [your_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>
    -Xrs -Xmx256m -XX:-UseSplitVerifier 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%jenkins.war" --httpPort=8080
</arguments>

对于大多数 Linux 发行版,请修改 JENKINS_ARGS 内部文件: /etc/default/jenkins (or jenkins-oc)

对于 CentOS,修改文件内部JENKINS_JAVA_OPTIONS: /etc/sysconfig/jenkins (or jenkins-oc)

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

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

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

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

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

最新更新