zl程序教程

您现在的位置是:首页 >  后端

当前栏目

代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成

2023-09-27 14:25:56 时间

image

SonarQube 是一个用于代码质量管理的开源平台 用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持 可以很方便地在持续集成中使用 SonarQube。此外 SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持 对国际化以及报告文档化也有良好的支持。

官方网址 https://www.sonarqube.org/

通过插件形式 可以支持包括 Java,C#,C/C 、PL/SQL、Cobol、JavaScrip、Groovy、Ruby 等二十五种编程语言的代码质量管理与检测 针对不同的编程语言其所提供的分析方式也有所不同 对于所有支持的编程语言 SonarQube 都提供源了代码的静态分析功能 对于某些特定的编程语言 SonarQube 提供了对编译后代码的静态分析功能。

SonarQube 支持多种客户端集成方式 包括但不限于 Scanner 客户端、Ant、Gradle、Maven、Jenkins、IDEA 插件等。比较常用的为 Gradle 和 Maven。

SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果 例如 CheckStyle、JaCoCo 等 直接展现给客户 而是通过不同的插件算法来对结果进行再加工 并最终以量化的方式来衡量代码质量 从而方便地对不同规模和种类的工程进行相应的代码质量管理 以便进行有针对性的代码修复或重构。

SonarQube 在进行代码质量管理时 会从以下的七个纬度对项目代码质量进行分析。

Sonar 实际上是一个 Web 系统 展现了静态代码扫描的结果 结果是可以自定义的 而真正实现代码扫描的是 Sonar Scanner 这个工具 另外同时支持多种语言的原理是它的扩展性 通过插件实现的 也就是 Java Jar 架包 可以在 Sonar 平台上在线安装或者离线安装。

1.已安装 JDK1.8 环境

2.已安装 Maven 用于后期与 SonarQube、JaCoCo 的集成

3.已安装 MySQ L数据库 Sonar 默认的数据库是自带 H2 数据库 是很小的嵌入式数据库引擎 这里的配置换成了 MySQL 为了方便通过数据库客户端进行数据查询

1.下载 SonarQube 地址为:

Download | SonarQube

2.配置数据库 下面的SQL是指定了schema为sonar password为sonar 其中第四条SQL是localhost是因为MySQL安装在本地

3.安装 SonarQube

I. 将下载的 sonar-3.7.zip 包解压至 Windows某个路径 如 D:\Tools\sonar 如是其他OS 请选择对应路径 如Linux的/usr/local/等 。

II. 修改 sonar.properties

在 /conf/sonar.properties 文件中 配置数据库设置 默认已经提供了各类数据库的支持这里使用 MySQL 因此取消 MySQL 模块的注释 同时因为端口冲突而改成端口为 11000。

III.在 /bin/ 目录下 运行 /windows-x86-64/StartSonar.bat 因为本 demo 是在 win10 64位安装的 如果是 Linux 的话 运行 nohup bash sonar.sh start

IV. 访问 http://localhost:11000 如果不是本机就输入 http://[remote IP]:11000 如果你看到下图所示即证明配置成功。

4.用 admin/admin 默认 进行登录 并安装汉化包

Chinese pack installation

Chinese pack restart

Chinese pack restart confirm

Well done!

下载Sonar Scanner 地址为
https://docs.sonarqube.org/display/SCAN/Analyzing with SonarQube Scanner将下载的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解压至 Windows 某个路径 如D:\Tools\sonar 如是其他OS 请选择对应路径 如Linux的/usr/local/等 修改环境变量
新增变量
SONAR_SCANNER_HOME D:\Tools\sonar\sonar-scanner-3.3.0
修改Path变量 增添
%SONAR_SCANNER_HOME%\bin\安装Sonar Scanner
I. 将下载的 sonar-3.7.zip 包解压至 Windows 某个路径 如 D:\Tools\sonar 如是其他 OS 请选择对应路径 如 Linux的/usr/local/ 等 。
II. 修改 sonnar-scanner.properties
在 /conf/sonar-scanner.properties 文件中 设置SonarQube服务器。
III. 到你想检测的工程根目录下新建文件sonar-project.properties 文件内容如下? 文件中的参数配置 参考Sonar Analysis Parameters这篇文章。
在命令行模式下 在工程的根目录下键入命令“sonar-scanner” 你会看到以下日志
运行 sonar-scanner
接着 重新登录 SonarQube 平台 检测的结果已经在平台上展现出来
从上图你可以看出来 连单元测试覆盖率的统计也生成出来了 主要原因为在该maven项目之前已经集成了Jacoco插件 具体Maven与Jacoco的集成请参考我的另外一篇文章 。
1.该项目为maven项目 并且Jacoco已经通过POM文件集成到项目中 具体步骤请参考我的另外一篇文章。
2.该集成方案其实还是首先通过maven package 命令去生成对应的覆盖率报告 然后通过sonar scanner直接使用该覆盖率报告并通过一定算法加工并展示到SonarQube的界面上去。
1.在项目根目录的 sonar-project.properties 文件中 增添以下配置内容
2.在 SoarQube 登录 admin 并通过在【配置-应用市场】下找到Jacoco插件并安装和重启。在项目根目录下 运行 mvn package 当build成功的时候Jacoco的结果就会产生在target/site/jacoco文件夹下。
maven package接着 在项目根目录下运行命令 sonar-scanner 如果看到以下结果证明已经覆盖率已经可以在SonarQube上查阅。
sonar scanner
以上 后续继续补充如何通过 SonarLint 整合到 IntelliJ IDEA 并同时如何整合到 Jenkins 实现自动化测试。
本文遵循 CC 4.0 BY-SA 版权协议 原文链接
代码质量管理平台SonarQube安装、配置及集成Jacoco方案_尘世间一名迷途小码农的博客-CSDN博客_sonarqube集成jacoco更多技术文章
测试开发基础 mvn test | 利用 Maven Surefire Plugin 做测试用例基础执行管理 在测试工作场景中,经常会遇到下面的问题: - 1、执行自动化测试用例的时候,只想指定某个测试类,或者某个方法,又或者某一类用例等,怎么办? - 2、想要和 Jenkins 一起进行持续集成,可是用例又不可能在 IDE 里面执行,怎么办? 这个时候就需要 Maven 登场了,利用 Maven 的Maven-Surefire-Plugin插件可以帮助我们完成上述的目标!它可以通过命令行的形式来管理
代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成 ![](https://ceshiren.com/uploads/default/original/3X/0/6/06250bd7e85b93784a37a6c492aa05bee2d77ef3.jpeg) SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube。