【发布时间】:2017-06-25 20:02:46
【问题描述】:
这是在 jenkins 覆盖作业中配置的声纳附加属性:
-Dsonar.jacoco.reportPath=${WORKSPACE}/merged_unit.exec
-Dsonar.java.coveragePlugin=jacoco
-Dsonar.dynamicAnalysis=reuseReports
-Dsonar.jacoco.itReportPath=${WORKSPACE}/merged_it.exec
我在 jenkins 上收到以下错误:
Jenkins 日志:[错误] 未能执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar 项目 aaaa-parent 上的 (default-cli):不兼容的执行数据 类 xxxxxxxxxxxxx,ID 为 4050af3ab5fc5456。 -> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 失败 执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar 项目 xxxxx 上的(默认 cli):类的执行数据不兼容 xxxxxxxxxxxxxxxxxx,ID 为 4050af3ab5fc5456。在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:197) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:483) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.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 天,非常感谢您的大力帮助。谢谢
【问题讨论】: