持续集成(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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代