Gradle JaCoCo – 互換性のないバージョン1006
Gradle build + JaCoCoのカバレッジレポート。
build.gradle
apply plugin: 'java' apply plugin: 'eclipse-wtp' apply plugin: 'jacoco'//code coverage repositories { mavenLocal() mavenCentral() } jacoco { toolVersion = "0.7.5+" } jacocoTestReport { reports { html.enabled = true xml.enabled = true csv.enabled = false } }
P.S Gradle 2.10
でテスト済み
1.問題
1.1 `jacocoTestReport`タスクを実行し、次のエラーメッセージを表示します:
$ gradle jacocoTestReport
出力
** What went wrong: Execution failed for task ':jacocoTestReport'. > Unable to read execution data file/home/mkyong/workspace/hc/analyzer/build/jacoco/test.exec
1.2 `–stacktrace`オプションでもっと情報を得てください。
$ gradle jacocoTestReport --stacktrace
出力 –
java.io.IOException:互換性のないバージョン1006.
Caused by: : Unable to read execution data file/home/mkyong/workspace/hc/analyzer/build/jacoco/test.exec at org.jacoco.ant.ReportTask.loadExecutionData(ReportTask.java:516) at org.jacoco.ant.ReportTask.execute(ReportTask.java:490) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:78) //... Caused by: java.io.IOException: Incompatible version 1006. at org.jacoco.core.data.ExecutionDataReader.readHeader(ExecutionDataReader.java:127) at org.jacoco.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:107) at org.jacoco.core.data.ExecutionDataReader.read(ExecutionDataReader.java:87) at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:59) at org.jacoco.ant.ReportTask.loadExecutionData(ReportTask.java:514)
2.解決策
Gradle JaCoCoプラグインがJaCoCoの `0.7.5`と互換性がないため、JaCoCoをバージョン0.7.4にダウングレードするように見えます。
build.gradle
jacoco { toolVersion = "0.7.4+" }
同様の「Incompatible version 100x」エラーの場合は、JaCoCoバージョンをダウングレードまたはアップグレードしてみてください。