【发布时间】:2015-08-08 04:03:54
【问题描述】:
我正在使用 SonarQube 进行代码质量控制,但突然无法分析原本可以通过的构建并失败。
[INFO] [00:00:03.630] 分析 /mySuperProject/target/jacoco.exec -> java.io.IOException:不兼容的版本 1007
当我使用调试开关调用 maven build 时,这个原因就暴露出来了
Caused by: java.io.IOException: Incompatible version 1007.
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.sonar.plugins.jacoco.AbstractAnalyzer.readExecutionData(AbstractAnalyzer.java:134)
at org.sonar.plugins.jacoco.AbstractAnalyzer.analyse(AbstractAnalyzer.java:107)
在检查 jacoco ExecutionDataReader 时,我发现从
抛出异常if (version != ExecutionDataWriter.FORMAT_VERSION) {
throw new IOException(format("Incompatible version %x.",Integer.valueOf(version)));
}
从 ExecutionDataWriter 我发现了
/** File format version, will be incremented for each incompatible change. */
public static final char FORMAT_VERSION = 0x1007;
这个不兼容的变化是什么?为什么会这样? 任何想法如何解决这个挑战?
【问题讨论】:
-
SonarQube java 插件端出现了问题:jira.codehaus.org/browse/SONARJAVA-1091,应该在下一个版本中修复。这是 JaCoCo 方面的重大变化。让我们一点时间来修复它。