5

我整天都在研究这个问题,但找不到解决方案,所以我想求助于 stackoverflow 社区。

我有一个使用 Jenkins 的服务器设置(版本 1.454)。它被配置为使用 Maven(版本 3.0.4)执行构建。构建命令如下:

clean clover2:setup verify clover2:aggregate clover2:clover

Jenkins 安装并配置了声纳插件。我的声纳安装(版本 3)与詹金斯在不同的服务器上。构建完成后,我可以在声纳上看到结果(构建的基础知识)。

我已经手动安装了三叶草插件(sonar-clover-plugin-2.8.jar),将其放入“扩展/插件”文件夹中。它出现在声纳中,我可以对其进行配置。我将许可证、版本 (3.1.4) 和 sonar.clover.reportPath 输入为“target\site\clover\clover.xml”。

当我运行构建时,它像以前一样成功,并且我可以像以前一样在 Sonar 中看到基本结果,但是,我看不到任何测试代码覆盖率结果。当我查看 Maven 构建输出时,我注意到以下内容:

[INFO] Writing report to '/opt/jenkins/jobs/foo/workspace/target/site/clover/clover.xml'

然后在输出的底部附近:

[INFO] [15:08:36.586] Clover XML report not found

以下内容也在我的 pom 中:

        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <sonar.clover.reportPath>target\site\clover\clover.xml</sonar.clover.reportPath>
    <sonar.surefire.reportsPath>target\surefire-reports</sonar.surefire.reportsPath>
    <sonar.core.codeCoveragePlugin>clover</sonar.core.codeCoveragePlugin>
    <sonar.clover.version>${clover.version}</sonar.clover.version>

当我查看 jenkins 框时,我可以看到它已经生成了 clover.xml 文件(事实上,在我的摆弄中,我有 clover 插件在 jenkins 上工作,所以我可以在那里看到结果!)。

我在这个阶段猜测詹金斯和声纳在单独的盒子上存在一些问题。任何帮助,将不胜感激!

干杯。

4

1 回答 1

5

经过更多的摆弄,看来我需要更改以下内容:

<sonar.clover.reportPath>${project.build.directory}/site/clover/clover.xml</sonar.clover.reportPath>
    <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>

以下是一个很好的参考: 所有关于 pom 变量

于 2012-04-24T05:57:47.107 回答