我正在维护一个jenkins插件,该插件已经公开使用了两年。最近,它停止工作,在这个位置展示了预期的叠图图框' JVM错误。
有一些SO主题讨论这个问题,但没有一个答案确实提供了有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。但是,通过强制每个jenkins服务器安装来更新其JVM配置,这是不切实际的。
到目前为止,我所做的是将Java编译版本设置为7并将所有MVN依赖项更新为其最新版本并执行干净重建。到目前为止没有任何进展。我仍然得到这个错误:
javax.servlet.ServletException: java.lang.VerifyError: Expecting a stackmap frame at branch target 53
Exception Details:
Location:
com/loadimpact/ApiTokenClient.isValidToken()Z @0: aload_0
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab4 00db 12ac b901 5902 0004 bd01 5f59
0x0000010: 03b2 0163 53b9 0167 0200 b901 cf01 004c
0x0000020: 2bb6 017f b901 d301 00b2 01d7 a600 0704
0x0000030: a700 0403 ac4c 2ab4 00d7 bb01 d959 b701
0x0000040: da13 01dc b601 e02b b601 e3b6 01e5 b601
0x0000050: e803 ac
Exception Handler Table:
bci [0, 52] => handler: 53
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
我的测试环境是Ubuntu 15.04,OpenJDK运行环境(版本1.8.0_45-internal-b14)运行最新的Jenkins(版本1.611)。
该插件依赖于(现在)最新的jenkins父插件
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.610</version>
</parent>
所以,我的问题很简单:我如何解决这个问题,因为我只能为插件指定依赖项和编译选项(即不要求人们更改他们的Jenkins配置)?