web-dev-qa-db-ja.com

Java 8を使用したcobertura-maven-plugin

それは私だけですか、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プラグインがJava-8互換バージョンのASMを使用するように更新されていないことが原因だと思います。

参考までに、質問 here を質問しましたが、回答がありませんでした

Java 8でcobertura-maven-pluginを使用することに成功した人はいますか?

18
Hilikus

新しいclassformatを理解させることは未解決の問題です。
https://github.com/mojohaus/cobertura-maven-plugin/issues/21

6
Jigar Joshi

Cobetura-maven-pluginで使用されるASM依存関係を手動で更新することで、これを機能させることができました。詳細は次のリンクをご覧ください: http://www.befreeman.com/2014/09/getting-cobertura-code-coverage-with.html

18
Brian F

これは、<build>および<reporting>セクションにcoberturaプラグインがある場合にも発生します。 1つ削除すると、問題は解消します。

3
RonanOD