Sonarqube 无法执行目标org.sonarsource.scanner.maven:sonar maven插件:3.2:sonar(默认cli)类的不兼容执行数据

Sonarqube 无法执行目标org.sonarsource.scanner.maven:sonar maven插件:3.2:sonar(默认cli)类的不兼容执行数据,sonarqube,jacoco,Sonarqube,Jacoco,这是jenkins覆盖作业中配置的声纳附加属性: -Dsonar.jacoco.reportPath=${WORKSPACE}/merged_unit.exec -Dsonar.java.coveragePlugin=jacoco -Dsonar.dynamicAnalysis=重用报告 -Dsonar.jacoco.itReportPath=${WORKSPACE}/merged_it.exec 我在jenkins身上发现以下错误: Jenkins日志:[错误]无法执行目标 sonarsour

这是jenkins覆盖作业中配置的声纳附加属性:

-Dsonar.jacoco.reportPath=${WORKSPACE}/merged_unit.exec -Dsonar.java.coveragePlugin=jacoco -Dsonar.dynamicAnalysis=重用报告 -Dsonar.jacoco.itReportPath=${WORKSPACE}/merged_it.exec

我在jenkins身上发现以下错误:

Jenkins日志:[错误]无法执行目标 sonarsource.scanner.maven:SonarMaven插件:3.2:sonar 项目aaaa父级上的默认cli:的执行数据不兼容 id为4050af3ab5fc5456的XXXXXXXXXXXX类。->[帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:未能 执行目标 sonarsource.scanner.maven:SonarMaven插件:3.2:sonar 项目xxxxx上的默认cli:类的执行数据不兼容 XXXXXXXXXXXXXXXX,id为4050af3ab5fc5456。在 org.apache.maven.lifecycle.internal.MojoExecutor.executeMojoExecutor.java:216 在 org.apache.maven.lifecycle.internal.MojoExecutor.executeMojoExecutor.java:153 在 org.apache.maven.lifecycle.internal.MojoExecutor.executeMojoExecutor.java:145 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProjectLifecycleModuleBuilder.java:116 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProjectLifecycleModuleBuilder.java:80 在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.buildSingleThreadedBuilder.java:51 在 org.apache.maven.lifecycle.internal.LifecycleStarter.executeLifecycleStarter.java:128 在org.apache.maven.DefaultMaven.doExecuteDefaultMaven.java:307 at org.apache.maven.DefaultMaven.doExecuteDefaultMaven.java:193 at org.apache.maven.DefaultMaven.executeDefaultMaven.java:106在 org.apache.maven.cli.MavenCli.executeMavenCli.java:862 at org.apache.maven.cli.MavenCli.doMainMavenCli.java:286 at org.apache.maven.cli.MavenCli.mainMavenCli.java:197 at sun.reflect.NativeMethodAccessorImpl.invoke0Native方法位于 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:483 at org.codehaus.plexus.classworlds.launcher.launchernhancedlauncher.java:289 在 org.codehaus.plexus.classworlds.launcher.LaunchLaunchLauncher.java:229 在 org.codehaus.plexus.classworlds.launcher.launcher.mainWithExitDelauncher.java:415 在 org.codehaus.plexus.classworlds.launcher.launcher.mainluncher.java:356

奇怪的是,如果我将reportPath和itReportPath设置为相同,那么不管是merged_unit.exec还是merged_it.exec,声纳分析都会进行得很好 但是如果我设置了它应该是什么,错误就会出现

该项目是一个多模块的项目,所以我使用下面的xml进行合并,我只将一个模块放在第一位进行测试

<target name="merge_unit_exec">
                <jacoco:merge destfile="/home/qatest/test-script/aaa/unittest/report/merged_unit.exec">
                        <fileset dir="/home/qatest/jenkins/workspace/aaaa/aaa/target" includes="*.exec" />
                </jacoco:merge>
</target>
这让我耽搁了2天,非常感谢您的大力帮助。谢谢您

类的不兼容执行数据意味着执行数据包含完全相同的类两次,但探测数不同

因此,请检查您是否在所有地方使用完全相同的最新JaCoCo版本。检查是否没有添加数据的陈旧exec文件,而这些文件是使用另一版本的JaCoCo创建的。检查JVM的非正常终止是否会导致不完整的损坏exec文件

在和中检查有关相同异常的类似问题


我找到了上面的解决方案,但谁能给出合理的答案呢

谢谢你的建议,我尝试统一jacoco版本,但没有成功。最后,我只通过更改配置顺序解决了这个错误,如下面的``Dsonar.jacoco.reportPath=${WORKSPACE}/merged\u unit.exec Dsonar.jacoco.itReportPath=${WORKSPACE}/merged\u it.exec-Dsonar.java.coveragePlugin=jacoco-Dsonar.dynamicAnalysis=reurereports``
-Dsonar.jacoco.reportPath=${WORKSPACE}/merged_unit.exec
-Dsonar.jacoco.itReportPath=${WORKSPACE}/merged_it.exec
-Dsonar.java.coveragePlugin=jacoco
-Dsonar.dynamicAnalysis=reuseReports