持续集成(CICD)-- sonar代码审查(静态扫描)

2024-03-13 22:28

本文主要是介绍持续集成(CICD)-- sonar代码审查(静态扫描),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、sonar作用
  • 二、sonar组成
  • 三、SonarQube
    • 1、安装SonarQube服务
    • 2、启动Sonar服务
    • 3、SonarQube 进行汉化
  • 四、 安装SonarScanner扫描器
    • 1、安装SonarScanner
  • 2、SonarScanner使用
    • 方式一:通过命令行去操作
    • 方法二:通过插件实现(重点)

一、sonar作用

当我们开发的代码结合Jenkins之后,对应的代码也会存在对应的工作空间当中,这时候我们可以利用工具对代码进行静态代码扫描来析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
在这里插入图片描述

二、sonar组成

SonarQube(分析器):SonarQube是Sonar生态系统中的核心组件,是一个开源的代码质量管理平台。它提供了强大的代码分析功能,可以检测代码中的各种问题,包括代码复杂性、潜在的错误、重复代码等。
SonarScanner(扫描器):用于将代码提交到SonarQube进行分析的工具

三、SonarQube

1、安装SonarQube服务

可以进入到对应的官网:https://www.sonarqube.org/进行下载,因为版本是9.7的版本一定注意jdk的版本尽量使用11的,否则可能会无法使用。
在这里插入图片描述

2、启动Sonar服务

下载完成之后是一个压缩文件,解压之后;可以在bin文件夹里面根据自己的操作系统进行使用即可。
**步骤一:**cmd 进入到 bin路径:输入StartSonar.bat
在这里插入图片描述
**步骤二:**浏览器输入127.0.0.1:9000
默认用户名和密码: admin 、 admin
注:第一次登录会提示你修改密码,正常进行修改即可;
在这里插入图片描述

3、SonarQube 进行汉化

启动之后 —>Administration—>Marketplace—>点击【I understand the risk】按钮—>Chinese Pack
在这里插入图片描述

四、 安装SonarScanner扫描器

SonarScanner是在构建系统没有特定扫描器时使用的扫描器。用于将代码提交到SonarQube进行分析的工具

1、安装SonarScanner

可以进入到对应的官https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/进行下载
在这里插入图片描述

2、SonarScanner使用

方式一:通过命令行去操作

通过Jenkins进入到构建窗口(注意这一步需要在运行代码之前),输入如下命令

<sonar-scanner.bat/sonar-scanner.sh的绝对路径> -D"sonar.projectKey=<扫描项目名(自定义)>" -D"sonar.host.url=<Sonar的服务地址>" -D"sonar.login=<Sonar的服务用户名>" -D"sonar.password=<Sonar的服务密码>"

在这里插入图片描述

Build now构建项目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法二:通过插件实现(重点)

第一步:查看Jenkins是否已经安装好扫描器的插件: SonarQube Scanner ,没有安装的话要进行安装

第二步:进入到【系统管理Manage Jenkins】—>【全局工具配置(Global Tool Configuration)】,添加信息如下:
1、配置如下:SonarScanner for MSBuild
2、配置如下:SonarQube Scanner
第三步:配置对应的凭证信息
A. 进入到Jenkins【系统管理】—>【配置】—> SonarQube servers
B. 进入到Gogs页面获取对应的令牌信息
注意:生成的 sonar 凭证 进可以看见一次,所以千万记得保存,别到时候又不见了.
比如:sqa_50bcf31b973a4642e92f387753fc5c85b1219930。
C. 回到Jenkins页面添加凭证
第四步:进入到【开发项目】—>构建—>Execute SonarQube Scanner 【注意构建的顺序:比如部署构建的代码要在扫描之后】
运行结果:

这篇关于持续集成(CICD)-- sonar代码审查(静态扫描)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/806385

相关文章

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav