如何在ANT中使用XX Splitverifier?

如何在ANT中使用XX Splitverifier?,ant,code-coverage,Ant,Code Coverage,我有一个简短的问题。正在寻求帮助 我正在使用emma对我的简单java文件进行代码覆盖。我在运行插入指令的类文件时遇到了麻烦。我是从ANT build.xml文件中完成这一切的。当我尝试运行此插入指令的类文件时,出现以下错误: [java]java.lang.VerifyError:在分支目标11处应为stackmap帧 如果需要我的整个build.xml,请告诉我。很乐意与大家分享 从论坛上,我看到我们可以使用XX Splitverifier。我不知道如何在ANT build.xml文件中使用

我有一个简短的问题。正在寻求帮助

我正在使用emma对我的简单java文件进行代码覆盖。我在运行插入指令的类文件时遇到了麻烦。我是从ANT build.xml文件中完成这一切的。当我尝试运行此插入指令的类文件时,出现以下错误:

[java]java.lang.VerifyError:在分支目标11处应为stackmap帧

如果需要我的整个build.xml,请告诉我。很乐意与大家分享


从论坛上,我看到我们可以使用XX Splitverifier。我不知道如何在ANT build.xml文件中使用它。任何人都可以分享你的答案吗

我在这里找到了这个问题的一个很好的解释:

如果您使用的是字节码操作工具,比如静态编织模式下的AspectJ(我是这样做的),而这些工具还没有更新,那么问题就会出现。他们基本上读取字节码,标记为Java7字节码,并在Java6模式下执行更改,保存仍在Java7模式下标记的结果。因此,JDK 7中的VM看到Java 7字节码并激活新的Java 7验证器,当它遇到在Java 6模式下操作的字节码时,该验证器将失败(或可能失败)

这看起来很复杂,但简单的解决方案是通过添加以下VM运行时选项来强制使用JDK 7中的旧验证器:-XX:-UseSplitVerifier

所以这是一个向后兼容性问题。您面临的选择是应用变通方法还是更改代码覆盖率工具

你有充分的理由使用Emma吗?Jacoco已成为其主要客户。我还建议使用,这将在构建过程中额外集成Findbugs、PMD和Checkstyle。有关这一切在ANT中如何工作的示例,请参见以下答案: