代码质量检查工具SonarQube

Devops流水线之SonarQube


文章目录

  • Devops流水线之SonarQube
  • [1. 软件功能介绍及用途](#1. 软件功能介绍及用途)
  • [2. 软件环境搭建与使用](#2. 软件环境搭建与使用)
    • [2.1 使用方法](#2.1 使用方法)
    • [2.2 SonarQube相关属性说明](#2.2 SonarQube相关属性说明)
    • [2.3 Sonar配置文件内容说明](#2.3 Sonar配置文件内容说明)
  • [3. 使用环节](#3. 使用环节)
  • [4. 检查方法](#4. 检查方法)

1. 软件功能介绍及用途

SonarQube是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过SonarQube我们可以检测出项目中重复代码,潜在bug,代码规范,安全性漏洞等问题,并通过SonarQube web UI展示出来

Sonar集成过程:

  • 开发人员在本地的IDE中使用sonarLint运行分析本地代码
  • 开发人员将代码提交到代码管理平台(GIT)
  • Devops工具构建,调用sonarScanner对项目代码进行扫描分析
  • 分析报告发送到SonarQube Server中进行加工
  • SonarQube Server加工并且保存分析报告到SonarQube Database中,通过UI显示分析报告

2. 软件环境搭建与使用

SonarQube为Devops平台所提供的一个测试类型的任务,已经由devops的人员搭建完毕,项目组可以直接进行配置使用。


2.1 使用方法

登录devops研发协同系统

  1. 点击左侧菜单树中的集成----构建;
  2. 选择想要检测的项目,此处以小企业的工作流项目为例;
  3. 点击编辑,进入任务编辑界面;
  4. 点击构建任务;
  5. 点击任务列表右侧"+号",将SonarQube添加到任务列表中;
  6. 任务添加成功后默认排序在最下面,手动将SonarQube调整至Maven执行这一步的后面;
  7. 填写配置信息(后面具体介绍);
  8. 点击保存,结束。


2.2 SonarQube相关属性说明

属性 是否必填 说明
标签 选择已配置好的标签
配置文件路径 sonar-project.properties,该文件默认路径为代码库全路径URL的根下,如果路径不同则需要配置正确路径
扫描项目路径 扫描项目的绝对路径,如果为空,则为工作空间根目录
参数 sonar运行参数
Sonar配置文件生成 sonar参数配置,优先级高于sonar配置文件
服务器 选择已有的SonarQube服务器
规则集 选择需要用到的规则,sonar会按照选择的规则执行扫描,如不选择,则使用默认的规则集:Java开发规范
质量表达式 如果为空,则不检查;否则进行指标检查,如果不达标,则任务执行失败,一般根据组织级质量目标确定
资源选择 选择要推送到的服务器资源
目标目录 选择要推送到的服务器资源下的路径

2.3 Sonar配置文件内容说明

#SonarQube平台中相对应项目的key,与Sonar.projectName保持一致(具体值可写工程名)

sonar.projectKey=test

#SonarQube平台中相对应项目的名字,与Sonar.projectKey保持一致(具体值可写工程名)

sonar.projectName=test

#SonarQube扫描的工程所在目录,是相对于sonar.properties的路径

sonar.projectBaseDir=trunk

#SonarQube工程显示版本号

sonar.projectVersion=1.0.0-SNAPSHOT

#扫描工程模块名称(多模块英文逗号分隔离)

sonar.modules=test,demo

#指定字符集

sonar.sourceEncoding=UTF-8

#Sonar检测的源文件目录

sonar.sources=src/main/java

#编译路径

sonar.java.binaries=target

#指定扫描语言类型

sonar.language=java

#Sonar检测的测试文件目录

sonar.tests=src/test

#检测中排除的源文件(排除的源文件不参与检测,一般排除单元测试文件、配置文件等)匹配0个或多个文件夹、 匹配0个或多个字符该属性根据实际情况排除文件定义可用可不用)
sonar.exclusions=
/test/*

#用来从覆盖率报告中排除的匹配方式

sonar.coverage.exclusions=/test/

#指定jacoco的exec二进制文件存放路径(已弃用),目前采用xml文件

#sonar.jacoco.reportPaths=target/jacoco.exec(已弃用)

#指定jacoco的xml文件存放路径

sonar.coverage.jacoco.xmlReportPaths=target/jacoco/jacoco.xml

#显示git提交人相关信息,如果是svn项目的,就改成svn

sonar.scm.provider=git

#显示git提交人相关信息

sonar.scm.disabled=false


3. 使用环节

可以由开发测试运维人员在项目部署时对项目代码进行质量检测使用,需要将待测代码提交到指定的git服务器上。


4. 检查方法

检察人员可以登录sonarQube平台,根据关键词查找相应的项目,对扫描结果进行检查


相关推荐
热爱运维的小七6 小时前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
云达闲人13 小时前
搭建DevOps企业级仿真实验环境:007Proxmox 虚拟机模板制作
devops·proxmox ve·虚拟化运维·虚拟机模板制作·pve 模板·企业级仿真实验环境·虚拟机克隆
云达闲人13 小时前
搭建DevOps企业级仿真实验环境:006Proxmox 基础环境验证
运维·devops·proxmox ve·sre·仿真实验环境·快照与克隆·运维实操教程
行者-全栈开发1 天前
Linux 核弹级高危漏洞 CVE-2026-31431 完整修复指南
linux·运维·服务器·ci/cd·devops·cve·核弹级高危漏洞
AC赳赳老秦3 天前
项目闭环管理:用 OpenClaw 对接 Jira / 禅道,实现需求 - 任务 - 进度 - 验收全流程自动化
运维·人工智能·python·自动化·devops·jira·openclaw
Misnice3 天前
DevOps 介绍
运维·devops
炸裂狸花猫3 天前
开源身份认证与访问管理平台 - Keycloak(一)
docker·云原生·kubernetes·开源·devops
云达闲人4 天前
搭建DevOps企业级仿真实验环境:005Proxmox Web 界面操作入门
运维·devops·proxmox ve·web界面·虚拟机创建
云达闲人4 天前
搭建DevOps企业级仿真实验环境:004Proxmox 内核调优与虚拟化优化
linux·服务器·devops·硬件加速·linux内核调优·虚拟化优化·内存气球
ezreal_pan4 天前
Kafka Docker 部署持久化避坑指南:解决重启后 Cluster ID 不匹配问题
分布式·docker·zookeeper·容器·kafka·devops