2014-09-02 123 views
14

它只是我還是cobertura-maven-plugin不能與java 8一起工作?當它運行我得到cobertura-maven插件與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的插件尚未更新爲使用ASM的一個java-8兼容版本

僅供參考,我提問here,但沒有回答

有沒有人設法使用java 8的cobertura-maven-plugin?

回答

18

我能夠得到它通過手動更新由cobetura - Maven的插件使用的ASM依賴工作。下面是詳細信息的鏈接: http://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

+2

實際上,當你開始更多地使用Java 8更奇特的功能時,這個解決方法似乎停止工作,不幸的是。 :( – metaforge 2014-11-17 21:58:20

+0

@metaforge請參閱https://github.com/cobertura/cobertura/issues/166#issuecomment-64662005尋找可能的解決方案。 Brian F此答案可能不完整,您需要更新其他依賴關係,請參閱我的github鏈接 – Hilikus 2015-01-19 16:37:03

+5

當我使用lambda時沒有爲我工作 - 有沒有辦法解決這個問題呢? – Neel 2015-06-14 00:18:06

2

,如果你在你的<build><reporting>段一的Cobertura插件也會發生這種情況。刪除一個,問題就會消失。