首页 > 其他分享 >代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成

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

时间:2022-08-31 18:46:28浏览次数:86  
标签:插件 scanner SonarQube 代码 Maven sonar 安装 JaCoCo

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取

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,地址为:
http://www.sonarqube.org/downloads/
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!

  1. 下载Sonar Scanner,地址为:
    https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
  2. 将下载的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解压至 Windows 某个路径,如D:\Tools\sonar(如是其他OS,请选择对应路径,如Linux的/usr/local/等)
  3. 修改环境变量
    新增变量:
    SONAR_SCANNER_HOME = D:\Tools\sonar\sonar-scanner-3.3.0
    修改Path变量:增添
    %SONAR_SCANNER_HOME%\bin\
  4. 安装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插件并安装和重启。
  5. 在项目根目录下,运行 mvn package,当build成功的时候Jacoco的结果就会产生在target/site/jacoco文件夹下。
    maven package
  6. 接着,在项目根目录下运行命令 sonar-scanner,如果看到以下结果证明已经覆盖率已经可以在SonarQube上查阅。
    sonar scanner
    以上,后续继续补充如何通过 SonarLint 整合到 IntelliJ IDEA,并同时如何整合到 Jenkins 实现自动化测试。
    本文遵循 CC 4.0 BY-SA 版权协议,原文链接:
    https://blog.csdn.net/justyman/article/details/87563883
    相关文章
    一文搞懂测试左移和测试右移的 Why-How-What
    精准化测试技术解读与平台构建最佳实践
    霍格沃兹测试学院中高级测试开发名企定向培养计划正在热招中。
    附-测试左移和测试右移部分-实战大纲,详细完整版大纲请入群咨询。

3 期热招中,扫码入群咨询
提升自己的核心竞争力吧
原文链接

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取

标签:插件,scanner,SonarQube,代码,Maven,sonar,安装,JaCoCo
From: https://www.cnblogs.com/Tester-muller/p/16644175.html

相关文章

  • 代码分析体系及Sonarqube平台
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取代码分析IDE辅助功能:xcode、androidstudio独立的静态分析工具:findbugs、androidlint、scan......
  • 使用dependency-check-maven对项目进行漏洞检查
    最近,公司安排对所开发项目进行漏洞检查,使用的就是开源扫描工具OWASPDependency-Check。使用方式有多种,鉴于项目是用maven进行管理的,我使用的是maven插件的方式,使用方式很......
  • Maven找不到依赖终极解决方案
    离线网络环境中拷贝maven仓库到离线机器,使用maven加载项目,maven编译jar包找不到或者提示jar包信息不可用,现提供以下本人解决的方式,亲测可用基础解决方案常规idea的maven......
  • maven基本介绍与使用
    0.前言JasonVanZyl,在Java十大风云人物排行榜上或许会看到他。这兄弟是干嘛的?他就是Maven的创始人,人们都尊称他为“Maven他爸”。毋庸置疑,Jason也是一个秃顶......
  • maven
    安装aptinstallmaven查看maven版本、安装路径等信息mvn-v配置mvncd/usr/share/maven/confvimsettings.xml更新jar包mvncleaninst......
  • Docker 安装Nexus3 快速搭建Maven私有仓库
    #查询镜像sudodockersearchsonatype/nexus3#拉取镜像last即可sudodockerpullsonatype/nexus3#创建挂载目录-可自定义sudomkdir-p/home/admin/nexus/data......
  • idea新建Maven项目,新建的module无法创建package
    idea新建Maven项目,新建的module无法创建package问题描述图解决问题方法原因:java文件并不是SourcesRoot,需设置成SourcesRoot步骤(图更详细):右键java文件——>点击Mar......
  • maven 加载顺序
    转载 http://uoften.com/article/216374.html概述本文主要是关于Maven仓库加载顺序的实例解析和相关实例 Maven仓库一般分为本地仓库和远程仓库。远程仓库又分为私......
  • maven工具篇
    Maven安装和核心概念一、maven安装maven官方地址介绍了一下maven需要安装的环境,比如说:操作系统、jdk版本要求(maven是基于java编写的)、内存情况等等。然后就是修改环......
  • vivo 基于 JaCoCo 的测试覆盖率设计与实践
    作者:vivo互联网服务器团队-XuShen本文主要介绍vivo内部研发平台使用JaCoCo实现测试覆盖率的实践,包括JaCoCo原理介绍以及在实践过程中遇到的新增代码覆盖率统计问题和......