JaCoCo SonarQube incompatible version 1007

后端 未结 8 1919
轮回少年
轮回少年 2020-12-08 12:50

I\'m using SonarQube for code quality control and suddenly builds that would otherwise pass can\'t be analyzed and fails.

[INFO] [00:00:03.630] Analy

相关标签:
8条回答
  • 2020-12-08 13:07

    Run:

    mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install
    mvn org.jacoco:jacoco-maven-plugin:prepare-agent clean install -Pcoverage-per-test
    mvn sonar:sonar
    

    This will re-generate .exec files created by older versions of jacoco.

    0 讨论(0)
  • 2020-12-08 13:11

    As already mentioned, this is due to a break in JaCoCo maven plugin code. You can (temporarily) specify the version in your jenkins maven command like:

    clean org.jacoco:jacoco-maven-plugin:<version>:prepare-agent install
    

    e.g.

    clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent install
    

    This was the workaround that helped us. But like most people, I'm still waiting for the fix to come.

    0 讨论(0)
  • 2020-12-08 13:12

    As kdowbecki mentionned it, this error is most likely due to an update of jacoco-maven-plugin.

    Your SonarQube is most likely now using the new version of Jacoco Maven Plugin (probably the new 0.7.5.201505241946) but is actually trying to read an old version of a jacoco.exec (in your case it might be reading a jacoco.exec generated by jacoco maven plugin version 0.7.4.201502262128) which results in an incompatibility thrown by JaCoCo.

    To fix this problem, you should make sure all your SonarQube/Jenkins jobs generate a JaCoCo report each time and do not rely on an older version of jacoco.exec that might have been generated by a previous job.

    0 讨论(0)
  • 2020-12-08 13:14

    For me this, when doing a mvn install

    Error while creating report: Cannot read execution data version 0x1006. This version of JaCoCo uses execution data version 0x1007

    meant I had done an archetype generate but the archetype accidentally included the target directory with old jacoco files in it (or it had been checked into git on accident). Doing a mvn clean first (and checking that in) cleared up the issue. Guess jacoco is reluctant to overwrite the jacoco.exec file with a new one when there are no unit tests to run or something like that, so the old file gets preserved and attempted to used for the jacoco report. FWIW...

    In general it means a version mismatch of generator vs. reporter.

    0 讨论(0)
  • 2020-12-08 13:16

    Try to update the Java plugin in SonarQube Update Center, this works for me. I updated the Java plugin from version 2.4 to latest 3.13.1.

    SonarQube Update Center -> Plugin Updates -> Java

    0 讨论(0)
  • 2020-12-08 13:22

    I changed pom.xml like

    groupId=org.jacoco
    artifactId=jacoco-maven-plugin
    version=0.8.4-SNAPSHOT
    

    it worked for me

    0 讨论(0)
提交回复
热议问题