代码质量管理平台之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

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

vi sonar-project.properties
# 项目名称
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

这个 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
    
  • -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的检查参数

猜你喜欢

转载自blog.csdn.net/inthat/article/details/132858001