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バージョンをダウングレードまたはアップグレードしてみてください。