前言:
网上大部分文章上传jacoco exec 到sonar的方法普遍使用到了“ sonar.jacoco.reportPaths ”这个参数路径,但按照新版的sonar(我的sonar版本7.9),这会报错,官网的说法“
Property ‘sonar.jacoco.reportPaths’ is no longer supported. Use JaCoCo’s xml report and sonar-jacoco plugin.”已经不支持reportPaths’参数
两种项目扫描方式
两种方式都使用sonar.coverage.jacoco.xmlReportPaths 参数。先把你的jacoco.exec文件数据report成xml格式。博主exec文件是ant build生产的,然后再copy到你要上传sonar的主机上 。只需要加上参数就可以
<xml destfile="${result.report.dir}/report.xml" />
maven 项目扫描:
mvn -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/report.xml sonar:sonar
sonar-scanner方式扫描:
sonar-project.properties配置文件内容如下。
‘’’
sonar.projectKey=你的项目名字
sonar.projectName=你的项目名字
sonar.projectVersion=1.0
sonar.sources=./src
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.java.binaries=target
sonar.core.codeCoveragePlugin=jacoco
sonar.coverage.jacoco.xmlReportPaths=/jacoco/report.xml
‘’’
结果展示如下图:
上传sonar有个好处是,可以看到趋势图,也可以直接通过接口拿到覆盖率数据。
注意:sonar.coverage.jacoco.xmlReportPaths 最好写成绝对路径,又不然会在其他路径下找这个报错找不到