Java 如何修复';此位置的预期堆栈映射帧';在Jenkins插件中
我正在维护一个jenkins插件,它已经公开使用两年了。最近,它停止了显示“此位置的预期堆栈映射帧”JVM错误的工作 有一些话题在讨论这个问题,但没有一个答案能真正提供有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。然而,通过强制每个jenkins服务器安装来更新其JVM配置,这是不实际的 到目前为止,我所做的是将Java编译版本设置为7,并将所有MVN依赖项更新为其最新版本,并执行干净的重建。到目前为止没有任何进展。我仍然得到这个错误:Java 如何修复';此位置的预期堆栈映射帧';在Jenkins插件中,java,jenkins,Java,Jenkins,我正在维护一个jenkins插件,它已经公开使用两年了。最近,它停止了显示“此位置的预期堆栈映射帧”JVM错误的工作 有一些话题在讨论这个问题,但没有一个答案能真正提供有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。然而,通过强制每个jenkins服务器安装来更新其JVM配置,这是不实际的 到目前为止,我所做的是将Java编译版本设置为7,并将所有MVN依赖项更新为其最新版本,并执行干净的重建。到目前为止没有任何进展。我仍然得到这个错误: jav
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运行时环境(build 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>
org.jenkins-ci.plugins
插件
1.610
因此,我的问题很简单:如果我只能为插件指定依赖项和编译选项(即不要求人们更改Jenkins配置),我如何解决这个问题?如果你是编译maven插件的人,使用
source=1.6
和target=1.6.
编译应该可以解决您的问题。我使用Gradle和“Gradle JPI”插件构建的Jenkins插件也有同样的问题。在本地一切正常,但是jenkins在调用插件代码时抛出了这个异常,即使我在构建jenkins插件和运行jenkins服务器实例时使用了相同的JDK版本。更正:事实证明,只有在调试模式下通过“gradle server”运行jenkins时,它才在本地工作如果我使用“java-jar-Dhudson.DNSMultiCast.disabled=true-DJENKINS_HOME=./work/opt/jenkins-620.war”@jens.riboe运行它,它就不起作用了。您的项目(或您使用的库)是否有可能使用Lombok?我发现我的詹金斯失败发生在我使用的一个库中,该库有一些“lombok”步骤。到目前为止,我似乎应该摆脱这种依赖