如何在ANT中使用XX Splitverifier?

时间:2014-02-22 01:29:32

标签: ant code-coverage

我有一个简单的问题。寻求帮助。

我正在使用emma为我的简单java文件进行代码覆盖。我在运行已检测的类文件时陷入困境。我是从ANT build.xml文件中完成的。当我尝试运行这个检测的类文件时,我收到以下错误:

[java] java.lang.VerifyError:期望分支目标11处的堆栈图框架

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

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

1 个答案:

答案 0 :(得分:0)

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

  

如果您正在使用字节码操作工具,例如静态编织模式中的AspectJ,我确实会出现问题,而这些工具尚未更新。它们基本上读取字节码,标记为Java 7字节码,并在Java 6模式下执行更改,保存仍在Java 7模式下标记的结果。因此,JDK 7中的VM看到Java 7字节码并激活新的Java 7验证程序,当它满足在Java 6模式下操作的字节码时,它会失败(或可能失败)。

     

这似乎很复杂,但简单的解决方案是通过添加此VM运行时选项强制在JDK 7中使用旧验证程序:-XX:-UseSplitVerifier。

所以这是一个向后兼容性问题。您可以选择应用解决方法或更改代码覆盖率工具。

你有充分理由使用艾玛吗? Jacoco已成为其replacement。我还建议使用SonarQube,它还会将Findbugs,PMD和Checkstyle集成到您的构建过程中。有关这一切在ANT中如何工作的示例,请参阅以下答案: