2014-09-02 16 views
14

Solo io o il plugin cobertura-maven non funziona con java 8? quando viene eseguito ricevocobertura-maven-plugin con 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) 

So che ci sono stati problemi con ASM e Java 8 così ho il sospetto il problema è che l'esperto-plugin non è stato aggiornato per utilizzare una versione di Java-8 compatibile di ASM

Per riferimento, ho posto la domanda here ma non ho ricevuto risposta

Qualcuno è riuscito a utilizzare il plugin cobertura-maven con java 8?

risposta

18

sono stato in grado di farlo funzionare aggiornando manualmente la dipendenza ASM utilizzato dal cobetura-maven-plugin. Ecco un link con maggiori dettagli: http://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

+2

In realtà, quando inizi a utilizzare più spesso le funzionalità più esotiche di Java 8, questa soluzione sembra smettere di funzionare, sfortunatamente. :( – metaforge

+0

@metaforge Si prega di consultare https://github.com/cobertura/cobertura/issues/166#issuecomment-64662005 per una possibile soluzione Brian F questa risposta potrebbe essere incompleta, è necessario aggiornare altre dipendenze, vedere il mio link github – Hilikus

+5

Non ha funzionato per me quando ho usato lambdas - c'è un modo per aggirare anche quello? – Neel

2

Questo accade anche se si dispone di un plugin cobertura nel vostro <build> e <reporting> sezioni. Rimuovere uno e il problema andrà via.