首页 > 其他分享 >代码质量管理 SonarScanner 扫描分析实战

代码质量管理 SonarScanner 扫描分析实战

时间:2024-10-09 20:52:57浏览次数:3  
标签:实战 SonarScanner Scanner SonarQube 代码 扫描 sonar scanner

在软件开发过程中,代码质量管理是一个至关重要但往往被忽视的环节。糟糕的代码不仅会增加维护成本,还可能导致不可预见的Bug和系统崩溃。如何用更有效的工具来保障代码质量呢?今天,我们将聚焦 SonarScanner,一个高效的代码质量管理工具,为你揭秘其扫描分析的实战过程!

随着代码量的增长,开发团队如何能更轻松地确保代码质量?SonarScanner 是一个可以帮助自动扫描代码并识别潜在问题的强大工具。它究竟是如何工作的?在实际操作中有哪些关键步骤?这篇文章将为你提供答案。

SonarScanner 是一个静态代码分析工具,支持多种编程语言(如 Java、JavaScript、C++ 等)。它能够自动检测代码中的潜在问题,如代码异味、漏洞、安全问题、重复代码等。使用 Sonar Scanner,你可以对项目代码进行深度扫描,生成分析报告,并将结果发送到 SonarQube 服务器。

SonarQube Scanner 是用来分析代码并将结果提交到 SonarQube 服务器的工具,支持多种语言和不同的项目构建工具:

  • 命令行工具

    下载 SonarQube Scanner 命令行工具并配置环境变量。这是最通用的 SonarQube Scanner,适用于各种构建工具之外的项目,或者没有与 SonarQube 原生集成的情况。它可以通过命令行直接运行,适用于多语言项目的分析。

  • 构建工具插件

    在 Maven、Gradle 、Ant 项目中可以直接集成 SonarQube Scanner 插件,如:

    <!-- Maven 中配置 SonarQube 插件 --><build>  <plugins>    <plugin>      <groupId>org.sonarsource.scanner.maven</groupId>      <artifactId>sonar-maven-plugin</artifactId>      <version>3.9.1.2184</version>    </plugin>  </plugins>

  • CI平台插件

    Jenkins 可以通过 SonarQube 插件直接集成代码质量扫描任务。适合持续集成(CI)/持续交付(CD)流水线中自动化运行 SonarQube 分析。

接下来以通用性的Sonar Scanner为例讲解如何使用

SonarQube Scanner安装和配置

1. 下载SonarQube Scanner

Sonar下载地址:https://binaries.sonarsource.com/?prefix=Distribution/sonar-scanner-cli/

根据自己的系统平台选择对应的版本,这里由于我是win机器,选择的是sonar-scanner-4.8.0.2856-windows

下载完毕之后将其解压到本地的某个目录下

2. 配置环境变量

将 Sonar Scanner 的 bin 目录添加到系统的 PATH 环境变量中,以便你可以从命令行直接运行 sonar-scanner

  • 新建SONNAR_SANNER_HOME环境变量,对应值填写sonar-scanner-4.8.0.2856-windows所在路径

  • %SONNAR_SANNER_HOME%\bin加入到PATH环境变量中

  • 验证安装,在命令行终端输入命令: sonar-scanner --version

3. 在SonarQube Server中创建项目

打开SonarQube Server的web页面,填写项目名:

图片

创建令牌:

图片

将令牌复制过来:

图片

4. 配置要分析的项目

进入到要分析的项目的根目录下,创建sonar-project.properties配置文件,填写如下配置:​​​​​​​

 # 项目标识
 sonar.projectKey=lemon_code_sonar
 # 默认和项目标识保持一致
 sonar.projectName=lemon_code_sonar
 # 项目版本号
 sonar.projectVersion=1.0
 # 项目扫描路径,默认.代表当前目录下所有的代码文件
 sonar.sources=.
 # 源码编码格式
 sonar.sourceEncoding=UTF-8
 # 创建项目生成的令牌
 sonar.login=295bff591e2b6336929165e3da953f43407991ca

5. 执行分析

打开命令行终端,进入到当前目录下,执行sonar-scanner命令即可开始分析项目:

图片

最终会在SonarQube Server页面上显示分析结果:

图片

 

在数字化转型加速的今天,企业对软件质量的要求也越来越高。为了在竞争中占据优势,很多团队都在寻找有效的代码质量管理工具。SonarScanner 作为开源代码分析工具,正以其高度灵活性和精准度被越来越多的团队采纳。

SonarScanner 是代码质量管理中的得力助手。通过自动扫描和详细的报告,它可以帮助开发团队快速识别并解决代码问题,确保代码在发布前符合质量标准。有效的代码质量管理,不仅可以提升团队效率,还能为项目的成功奠定坚实基础。

“代码质量不仅是项目成功的基础,更是开发者自豪的标志。用 SonarScanner,把控每一行代码的质量。”

 

 

标签:实战,SonarScanner,Scanner,SonarQube,代码,扫描,sonar,scanner
From: https://blog.csdn.net/m0_58552717/article/details/142794587

相关文章

  • Rust 中的 HashMap 实战指南:理解与优化技巧
    Rust中的HashMap实战指南:理解与优化技巧在Rust编程中,HashMap是一个强大的键值对数据结构,广泛应用于数据统计、信息存储等场景。在本文中,我们将通过三个实际的代码示例,详细讲解HashMap的基本用法以及如何在真实项目中充分利用它。此外,我们还将探讨Rust的所有权系统对Ha......
  • SQL注入实战——盲注
    利用sqliabs中less-8和less-9学习盲注目录盲注一、基于时间的盲注1.时间盲注常用函数2.打开less-93.测试的核心语句4.延时注入5.猜测数据库利用二分法猜测数据表、字段名、用户名及密码 二、基于布尔的盲注1.布尔注入常用函数2.打开less-8 3.判断当前数据......
  • 尚硅谷vue3实战项目--硅谷甄选项目笔记
    硅谷甄选运营平台此次教学课程为硅谷甄选运营平台项目,包含运营平台项目模板从0到1开发,以及数据大屏幕、权限等业务。此次教学课程涉及到技术栈包含:vue3+TypeScript+vue-router+pinia+element-plus+axios+echarts等技术栈。一、vue3组件通信方式通信仓库地址:https://gitee.c......
  • 产品战略规划实战暨工信部教考中心产品战略规划能力
     通过此次课程培训,可使学习者获得如下收益:   掌握华为BLM业务领先模型;运用双差分析并找出根因;掌握确定战略意图方法;运用五看方法论进行高质量市场洞察;运用竞争取舍线工具展开高质量的竞争;运用SPAN模型和综合指数法筛选优质机会;熟练运用10种创新策略......
  • 项目实战——简单计算器
    代码演示:whileTrue:try:op=input('请输入一个四则运算算式:')if'+'inop:a=op.split('+')result=int(a[0])+int(a[1])print(result)elif'-'inop:......
  • Java并发编程:深入探索与实战案例
    Java并发编程:深入探索与实战案例在当今的多核处理器时代,并发编程已成为提升应用程序性能、优化资源利用的关键技术之一。Java,作为一门广泛应用的编程语言,凭借其强大的并发处理能力,在众多编程语言中脱颖而出。本文将深入探讨Java并发编程的核心概念、常用工具及实战案例,旨在......
  • Kubernetes(K8s)技术深度解析与实战案例
    Kubernetes(K8s)技术深度解析与实战案例Kubernetes(简称K8s)已经成为当今云原生应用和微服务架构的首选平台。作为一个开源的容器编排系统,K8s用于自动化应用程序的部署、扩展和管理。本文将深入探讨K8s的架构、关键组件、设计理念以及实战应用,并通过一个具体的微服务应用部署案......
  • 总奖金高达10万元!华为算法精英实战营“亲和任务调度系统”来啦!
    随着物联网、大数据、AI时代的到来,时延、可靠性等指标要求越来越高,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。CPU内部的大部分资源用于缓存和逻辑控制,适合运行具有分支跳转、逻辑复杂、数据结构不规则、递归等特点的串行程序。在集成电路工艺制程将要达到极限,摩尔......
  • Minio迁移实战流程
    前言:由于项目需要迁移Minio数据记录一下首先要确定环境Linux下环境两边环境需要统一minio的版本如果用docker安装的可以直接升级一.安装迁移工具mcyum-yinstallmcmvmc/usr/local/binchmod+x/usr/local/bin/mcexportPATH=$PATH:/usr/local/binmc--version至......
  • 智驾仿真测试实战之自动泊车HiL仿真测试
    1.引言 汽车进入智能化时代,自动泊车功能已成为标配。在研发测试阶段,实车测试面临测试场景覆盖度不足、效率低下和成本高昂等挑战。为解决这些问题,本文提出一种自动泊车HiL仿真测试系统方案,可大幅度提升测试效率及测试场景覆盖度、缩短测试周期、加速产品迭代升级。 2.自动泊......