我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪VerifyError
的s。在一个线程中,我发现如果我使用-XX:-UseSplitVerifier
魔法开关进行编译,它可以帮助我。
我想做的是在 Jenkins 中全局设置这个 Java 选项,但没有找到任何配置。有人可以帮我解决这个问题吗?
我能想到的最接近的事情是通过 Maven 设置参数,但我必须为每个项目配置都这样做——我想避免这种情况。
提前致谢。
我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪VerifyError
的s。在一个线程中,我发现如果我使用-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]/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。
在 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)
显然,在 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/properties
XML 标签的文件,但它没有记录。