2014-09-02 6 views
14

Ist es nur ich oder das Cobertura-Maven-Plugin funktioniert nicht mit Java 8? wenn es läuft ichCobertura-Maven-Plugin mit Java 8

bekommen
[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) 

Ich weiß, dass es mit ASM und Java-Themen waren 8, so vermute ich, das Problem ist, dass die Maven-Plugin aktualisiert, um eine Java-8 kompatible Version von ASM wurde nicht verwenden

Als Referenz habe ich die Frage here gestellt, aber habe keine Antwort erhalten

Hat es jemand geschafft, cobertura-maven-plugin mit java 8 zu verwenden?

Antwort

18

ich in der Lage war es durch die manuelle Aktualisierung der ASM Abhängigkeit von der cobetura-Maven-Plugin verwendet, zum Laufen zu bringen. Hier ist ein Link mit mehr Details: http://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

+2

Tatsächlich, wie Sie beginnen, die exotischeren Funktionen von Java 8 häufiger zu verwenden, Dieser Workaround scheint leider nicht mehr zu funktionieren. :( – metaforge

+0

@metaforge Bitte lesen Sie https://github.com/cobertura/cobertura/issues/166#issuecomment-64662005 für eine mögliche Lösung. Brian F Diese Antwort ist möglicherweise unvollständig, Sie müssen andere Abhängigkeiten aktualisieren, siehe bitte mein github link – Hilikus

+5

Hat bei mir nicht funktioniert, als ich lambdas benutzt habe - gibt es einen Weg, das auch zu umgehen? – Neel

2

Dies geschieht auch, wenn Sie ein cobertura Plugin in Ihrem <build> und <reporting> Abschnitte haben. Entferne einen und das Problem verschwindet.