19

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

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

我能想到的最接近的事情是通过 Maven 设置参数,但我必须为每个项目配置都这样做——我想避免这种情况。

提前致谢。

4

4 回答 4

18

在主菜单项下Manage Jenkins->Configure System您可以在Global MAVEN_OPTS.

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

干杯,

于 2012-10-17T10:41:32.540 回答
5

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

我希望这可能会有所帮助。

问候,

查理·Ch。

于 2012-10-17T10:08:07.850 回答
3

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

于 2016-01-14T14:41:42.070 回答
0

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

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

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

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

有一个config.xml带有jdks/jdk/propertiesXML 标签的文件,但它没有记录。

于 2015-05-04T10:21:51.697 回答