2014-09-02 11 views
14

Czy tylko ja lub cobertura-maven-plugin nie działa z java 8? kiedy skończy mi sięcobertura-maven-plugin z Javą 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) 

wiem, że były problemy z ASM i Java 8 więc podejrzewam, że problem jest, że maven-plugin nie został zaktualizowany do korzystania z java-8 zgodny wersję ASM

Dla odniesienia, zadałem pytanie here, ale nie dostałem odpowiedzi

Czy ktoś zdołał użyć cobertura-maven-plugin z java 8?

Odpowiedz

18

udało mi się dostać pracy poprzez ręczne aktualizowanie zależność ASM używany przez cobetura-maven-plugin. Oto link więcej szczegółów: http://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

+2

Faktycznie, gdy zaczniesz częściej korzystać z bardziej egzotycznych funkcji Java 8, to obejście wydaje się, niestety, przestać działać. :( – metaforge

+0

@metaforge Proszę zobaczyć https://github.com/cobertura/cobertura/issues/166#issuecomment-64662005 dla możliwego rozwiązania Brian F ta odpowiedź może być niekompletna, musisz zaktualizować inne zależności, zobacz mój link do github – Hilikus

+5

Nie działa dla mnie, gdy użyłem lambdas - czy istnieje sposób, aby obejść to również? – Neel

2

Dzieje się tak również wtedy, gdy masz wtyczki cobertura w swoim <build> i <reporting> sekcjach. Usuń jeden, a problem zniknie.