我正在使用SonarQube进行代码质量控制,然后突然构建,否则将无法分析和失败.
[INFO] [00:00:03.630]分析/mySuperProject/target/jacoco.exec - > java.io.IOException:不兼容的版本1007
当我使用调试开关调用maven构建时,会显示此原因
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)
Run Code Online (Sandbox Code Playgroud)
在检查jacoco ExecutionDataReader时,我发现异常被抛出
if (version != ExecutionDataWriter.FORMAT_VERSION) {
throw new IOException(format("Incompatible version %x.",Integer.valueOf(version)));
}
Run Code Online (Sandbox Code Playgroud)
从ExecutionDataWriter我发现了
/** File format version, will be incremented for each incompatible change. */
public static final char FORMAT_VERSION = 0x1007;
Run Code Online (Sandbox Code Playgroud)
这种不相容的变化是什么?它为什么会发生?任何想法如何解决这一挑战?
小智 76
如前所述,这是由于JaCoCo maven插件代码中断.您可以(暂时)在jenkins maven命令中指定版本,例如:
clean org.jacoco:jacoco-maven-plugin:<version>:prepare-agent install
Run Code Online (Sandbox Code Playgroud)
例如
clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent install
Run Code Online (Sandbox Code Playgroud)
这是帮助我们的解决方法.但和大多数人一样,我还在等待修复工作的到来.
Rém*_*Roy 32
我所做的是在我的maven项目中指定jacoco版本.
<jacoco-maven-plugin.version>0.7.4.201502262128</jacoco-maven-plugin.version>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题!
Kar*_*cki 16
最有可能是由最新的jacoco-maven-plugin更新引起的.一切都在0.7.4.201502262128上工作,但今天我们切换到0.7.5.201505241946导致了这个错误.
跑:
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
Run Code Online (Sandbox Code Playgroud)
这将重新生成.exec由旧版jacoco创建的文件.
尝试更新SonarQube更新中心中的Java插件,这对我有用.我将Java插件从2.4版更新到最新的3.13.1版.
SonarQube更新中心 - >插件更新 - > Java
| 归档时间: |
|
| 查看次数: |
27401 次 |
| 最近记录: |