18

只是我还是 cobertura-maven-plugin 不适用于 java 8?当它运行时,我得到

[INFO] --- cobertura-maven-plugin:2.6:instrument (default) @ provider-impl ---
[INFO] Cobertura 2.0.3 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[cobertura] WARN  [main] net.sourceforge.cobertura.instrument.CoberturaInstrumenter - Unable to instrument file /var/lib/jenkins/workspace/BranchBuilder/implementations/provider-impl/target/generated-classes/cobertura/com/foo/impl/internal/ServiceProviderImpl$JoinRunner.class
java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.instrumentClass(CoberturaInstrumenter.java:147)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.instrumentClass(CoberturaInstrumenter.java:121)
at net.sourceforge.cobertura.instrument.CoberturaInstrumenter.addInstrumentationToSingleClass(CoberturaInstrumenter.java:234)
at net.sourceforge.cobertura.instrument.Main.addInstrumentationToSingleClass(Main.java:298)
at net.sourceforge.cobertura.instrument.Main.addInstrumentation(Main.java:307)
at net.sourceforge.cobertura.instrument.Main.parseArguments(Main.java:399)

我知道 ASM 和 java 8 存在问题,所以我怀疑问题是 maven-plugin 尚未更新为使用与 java-8 兼容的 ASM 版本

作为参考,我在这里问了这个问题,但没有得到答案

有没有人设法将 cobertura-maven-plugin 与 java 8 一起使用?

4

3 回答 3

18

我能够通过手动更新 cobetura-maven-plugin 使用的 ASM 依赖项来使其工作。这是一个包含更多详细信息的链接: http ://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

于 2014-09-23T17:02:04.220 回答
6

让它理解新的类格式是一个开放的问题,
https://github.com/mojohaus/cobertura-maven-plugin/issues/21

于 2014-09-02T16:20:19.000 回答
3

如果您的<build><reporting>部分中有 cobertura 插件,也会发生这种情况。删除一个,问题就会消失。

于 2015-09-14T14:27:58.557 回答