• 代码质量管理平台之SonarQube


    代码质量管理平台之SonarQube

    一、什么是SonarQube

    SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误。

    ​SonarQube 包含3个组件,scanner扫描器、server服务器、database。scanner组件对代码进行扫描,然后将扫描报告传给server,server将将扫描结果存储在database中,scanner组件一般在用户侧,与server通过C/S结构通信。

    二、SonarScanner安装和使用

    官方文档:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/

    点击链接下载最新的 SonarScanner 到构建机,针对下载代码运行该探针,执行结果会发送到SonarQube服务器端 进行解析和渲染

    wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip
    
    • 1

    在项目源码的根目录中创建一个名为的配置文件 sonar-project.properties

    vi sonar-project.properties
    
    • 1
    # 项目名称
    sonar.projectKey=xxx_pipeline
    # 项目的名称及版本
    sonar.projectName=xxx_pipeline
    sonar.projectVersion=V1.0.1
    # 需要静态扫描的文件目录
    sonar.sources=.
    # 可选字段
    #sonar.my.property=value
    sonar.language=java
    sonar.sourceEncoding=UTF-8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    这个 sonar-project.properties 文件是 SonarQube 工程配置文件

    使用这个配置文件,可以自定义 SonarQube 的项目信息,以及扫描源代码的相关配置,比如编码、目录等,以获取更准确的扫描结果。这个文件需要放在项目根目录下,SonarQube 在扫描项目时会自动读取该文件使用

    几个常用的参数,也可以直接加到命令行参数中,不用写配置文件(如果觉得命令行比较长,也可以直接写入源码根目录下面的sonar-project.properties文件中):

    • sonar.projectKey
      项目标识,SonarQube 中不能有两个项目拥有相同的 projectKey。所以如果 SonarQube 实例中已存在某个 projectKey,你需要修改成一个不同的名称。
      SonarQube 平台为了区分不同项目,使用的是 项目标识sonar.projectKey关键字

    • -Dsonar.projectName
      在 SonarQube 的界面中,作为项目的显示名称,用于区分不同的项目。

    • -Dsonar.sources=./sourcecode/
      指定SonarQube需要分析的源代码目录,SonarQube只会分析sonar.sources指定的目录下的源代码文件。
      一个示例用法:

      -Dsonar.sources=./src/main/java,./src/test
      
      • 1
    • -Dsonar.sourceEncoding=UTF-8
      确保SonarQube以UTF-8编码读取源代码

    • -Dsonar.host.url=http://sonarqube.mycompany.com
      告知SonarQube扫描器需要连接的SonarQube服务器地址。SonarQube扫描器需要与SonarQube服务器通信,上传扫描结果。

    • -Dsonar.login
      -Dsonar.login是SonarQube中的一个安全相关的参数,它用于在执行SonarQube扫描时,提供访问SonarQube服务器所需的令牌(token)。这个参数的主要作用是: 向SonarQube验证扫描用户的身份,只有正确的令牌才能访问SonarQube服务器。

    • -Dsonar.qualitygate.wait
      -Dsonar.qualitygate.wait是一个SonarQube扫描参数,它的作用是设置在扫描完成后是否等待质量门的状态,以此决定CI/CD流水线的后续行为。

    三、jenkins集成sonar

    1.在jenkins安装scanner插件:SonarQube Scanner for Jenkins

    2.安装完成后,在 系统管理->系统设置中,找到SonarQube servers模块,填写服务器信息

    3.执行代码分析,新增一个构建步骤,选择Execute SonarQube Scanner,选择你的jdk版本,若没有,请在全局工具配置中配置好jdk位置。再选择好sonarqube scanner的版本。

    之后,在Analysis properties处,输入sonar的检查参数

  • 相关阅读:
    常用软件安装
    UDP协议概述
    【云原生--Kubernetes】Pod资源管理与探针检测
    Abnova丨5-甲基胞嘧啶多克隆抗体中英文说明
    AtCoder Beginner Contest 320 G - Slot Strategy 2
    zabbix最新漏洞,可绕过认证登陆!
    【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询
    OpenCV图像处理学习九,双边滤波器 (Bilateral Filter)和中位数滤波器 (Median Filter)
    qt-C++笔记之信号与槽
    030——从GUI->Client->Server->driver实现对红外遥控的控制
  • 原文地址:https://blog.csdn.net/inthat/article/details/132858001