sonarQube 覆盖率配置
前言
覆盖率不是sonar直接给我们生成的,而是根据项目覆盖率工具,自己生成报告,然后集成jacoco插件,生成覆盖率报告,最后由sonar收集
Maven集成Jacoco
-
添加jacoco插件的依赖 ? <!--jacoco覆盖率-->
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>org.jacoco</groupId>
? ? ? ? ? ?<artifactId>jacoco-maven-plugin</artifactId>
? ? ? ? ? ?<version>0.8.3</version>
? ? ? ?</dependency> -
添加jacoco插件
<plugin>
? ? ? ? ? ? ? ?<groupId>org.jacoco</groupId>
? ? ? ? ? ? ? ?<artifactId>jacoco-maven-plugin</artifactId>
? ? ? ? ? ? ? ?<version>0.7.8</version>
? ? ? ? ? ? ? ?<executions>
? ? ? ? ? ? ? ? ? ?<execution>
? ? ? ? ? ? ? ? ? ? ? ?<id>pre-test</id>
? ? ? ? ? ? ? ? ? ? ? ?<goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<goal>prepare-agent</goal>
? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? ? ? ?<execution>
? ? ? ? ? ? ? ? ? ? ? ?<id>post-test</id>
? ? ? ? ? ? ? ? ? ? ? ?<phase>test</phase>
? ? ? ? ? ? ? ? ? ? ? ?<goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<goal>report</goal>
? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? </executions>
? ? ? ? ? </plugin>
-
打包过程放开单元测试 注意:父类pom文件将单元测试扫描放开? -
sonar-project.properties 配置文件新增如下三个参数
# 指定代码覆盖率工具为jacoco
sonar.core.codeCoveragePlugin=jacoco
# 指定exec二进制文件存放路径
sonar.jacoco.reportPaths=target/coverage-reports/jacoco.exec
sonar.java.binaries=E:/work/sf-report-server/target
sonarQube远程上传报告
-
在SonarQube页面创建项目 -
创建令牌:用于远程连接 -
下载并解压SonarScanner压缩包 下载地址:SonarScanner | SonarQube Docs 将压缩包解压到指定目录,并将解压目录下的bin目录配置到系统环境变量%PATH%中。
-
进入IDEA需要扫描的项目所在目录下,修改sonar.java.binaries=xxxx 参 -
window环境下进入dos黑窗口,进入项目代码所在目录,执行如下命令 sonar-scanner.bat -D"sonar.projectKey=d61bb1575600fc40dfb48e0620e1ff7115518336" -D"sonar.sources=src" -D"sonar.language=java" -D"sonar.host.url=http://localhost:9002" -D"sonar.login=admin" -D"sonar.password=admin"
?
sonar.projectKey : sonarQube 令牌
?
sonar.language :扫描语言
?
sonar.host.url: sonarQube 远程地址
?
sonar.login : 用户名
?
sonar.password: 密码
-
正常结果 -
再去SonarQube页面上即可查看代码检查结果 ?
|