首页 > 其他分享 >SonarLint and SonarQube

SonarLint and SonarQube

时间:2023-11-25 23:14:31浏览次数:47  
标签:SonarQube 代码 SonarLint 文件夹 sonarqube SONARQUE 服务器

SonarQube系列-架构与外部集成

  合集 - DevOps工具链(6)   1.SonarQube系列-架构与外部集成09-10 2.SonarQube之采购选型参考2022-02-213.SonarQube系列-认证&授权的配置09-254.【Jenkins系列】-Pipeline语法全集04-015.【Jenkins系列】快速创建Jenkins Job2022-11-276.SonarQube系列-通过配置扫描分析范围,聚焦关键问题10-12 收起  

介绍

Sonar是一个代码质量管理的开源平台,基于Java开发的,用于管理源代码的质量,通过插件形式,可以支持包括java、C#、JavaScript等二十余种编程语言的代码质量管理与检测。

它具有免费的社区版本和其他付费版本。

SonarQube之采购选型参考

利用SonarQube的主要好处是:它集成了数千种自动的静态代码分析规则,旨在提高开发人员的代码质量和安全性,使得开发人员编写更加干净,更加安全的代码。

主要提供了三个比较大的功能:

  • 代码可靠性支持:提前捕获和提示代码中的错误,从而避免未定义的行为影响到终端用户。

  • 应用安全支持:修复可能危害到应用程序的漏洞,并通过安全热点学习AppSec(简单理解就是会学习和识别新的漏洞)。

  • 技术债务支持:确保管理的代码库干净并且可维护,以便提高开发人员的开发效率。

这可以帮助你确保代码在合并之前达到预期的质量!

  • 只需一行命令即可轻松集成到CI/CD管道中。

  • 也可以集成到Maven和Gradle构建周期中

  • 检查几乎所有内容,如代码质量,格式,变量声明,异常处理等。

实际上,研发团队可以基于SonarQube做下面的事情:

  • CI/CD流程加入一个SonarQube扫描的环节

  • 实施代码质量阈值,只有通过了这个质量阈值检测才能进入下一个流程

  • 代码质量低于阈值的项目要及时调整对应的代码

质量阈值可以进行自定义,SonarQube中针对每个项目会有详细的面板信息,里面会给出项目当前的健康状态,不同级别漏洞的分类和明细,漏洞对应提交者等多维度的统计信息,方便进行问题的追踪和修复。

针对不同的项目,SonarQube可设定了不同等级的阈值,对于老项目,会使用最低等级的阈值:阻断性的错误数量要求为0,对于一些新的项目,则严格要求质量如严重性的错误要求为0等,只要无法通过质量阈值检查,那么项目是无法上线的。

组成

1、SonarQube服务器

sonarqube是sonar的服务端,相当于一个web服务器,用来发布应用,在线浏览、配置分析等。

  • 开发人员和管理员操作频繁,用于浏览代码质量和配置服务器。

  • 集成ElasticSearch做搜索服务,用于返回通过UI搜索内容。

  • 集成计算引擎处理代码分析后的报告,并将报告保存到数据库。

每个文件夹的作用

bin:sonarqube运行命令文件夹

conf:sonarqube配置文件夹

data:嵌入式数据库的数据(H2数据库引擎),建议只用于测试和演示

extensions:sonarqube的插件等存放文件夹

lib:sonarqube存放的运行库文件夹(jar)

logs:sonarqube日志文件夹

temp:sonarqube临时文件夹  

web:sonarqube系统UI界面文件夹

2、SonarQube数据库

  • 存储代码分析数据报告。

  • 支持oracle、PostgreSQL、MySQL。

3、Sonarqube-Scanner

sonarqube-scanner相当于sonar客户端, sonarqube-scanner如下图所示。每个文件夹的作用和sonar类似,具体不在赘述。

  • 客户端工具,用于扫描项目。

  • 将扫描结果上传到服务器。

4、SonarQube Plugins

  • 通过插件使平台功能更加强大,

  • 常用的插件分类:SCM、集成、身份验证、管理维护等插件。

外部集成

下面的模式展示了SonarQube如何与其他ALM工具集成,以及使用SONARQUE的各种组件。

  1. 开发人员在IDE中编写代码,并使用SonarLint来运行本地分析。

  2. 开发人员将他们的代码推到他们最喜欢的SCM:Git,Svn,TFVC,…

  3. 连续集成服务器触发自动构建,执行SONARQUE扫描器需要运行SONARQUE分析。

  4. 分析报告被发送到SONARQUE服务器进行处理。

  5. SONARQUE服务器在SONARQUE数据库中处理和存储分析报告结果,并将结果显示在UI中。

  6. 开发人员审查、评论、挑战他们的问题,通过SONARQUE UI管理和减少他们的技术债务。

  7. 管理者从分析中得到报告;使用API来自动配置并从SONARQUE中提取数据;使用JMX监控SONARQUBE服务器

SonarLint

SonarLint是一个Sonar IDE插件,可以接收和连接SonrarQube对代码库扫描的结果从而通知Developer, SonarLint本身也可以基于一些规则对代码IDE中的代码进行即时的检测。它的目的是在您键入代码时提供即时反馈。

注意:为了获得最佳性能,Sonar Qube服务器和数据库应安装在单独的主机上,并且服务器主机应为专用主机。服务器和数据库主机应位于同一网络上。

所有主机都必须进行时间同步

标签:SonarQube,代码,SonarLint,文件夹,sonarqube,SONARQUE,服务器
From: https://www.cnblogs.com/Leo_wl/p/17856303.html

相关文章

  • SonarQube系列-通过配置扫描分析范围,聚焦关键问题
    在许多情况下,你可能不希望分析项目中每个源文件的各个方面。例如,项目可能包含生成的代码、库中的源代码或有意复制的代码。在这种情况下,跳过这些文件分析的部分或全部方面是有意义的,从而消除干扰并将焦点缩小到真正重要的问题上。如果SonarQube的结果不相关,那么没有人会想要使用它......
  • Sonarqube 二进制的安装与简单使用
    Sonarqube二进制的安装与简单使用背景使用容器安装sonarqube发现无法使用PG数据库尝试了很长时间没搞定想了想还是使用二进制的方式进行部署吧.下载https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.2.1.78527.zip这个应该是2023.11的最......
  • SonarQube系列-了解认证&授权配置,基于权限模块批量授权
    参考文档:docs.sonarqube.org/latest/inst…概述SonarQube具有许多全局安全功能:认证和授权机制强制身份认证委派认证除此之外,还可在group/user级别配置:查看一个已存在的项目访问项目的源代码管理一个项目(设置排除模式,调整该项目的插件配置等)管理质量配置,质量阈,实例…安全性的另一......
  • SonarQube使用教程
    SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,本文将会介绍一下这个工具的安装、配置以及使用。一、SonarQube的安装使用:下载地址:http://www.sonarqube.org/downloads/本文下载的版本是sonarqube-6.7.6。下载完之后,选择进入具体的版本,本文作......
  • SonarQube安装及分析.NET 5.0代码
    SonarQube安装及分析.NET5.0代码一、写在前面在日常逛园子的时候发现了SonarQube这个代码质量管理平台,感觉挺有意思的所以决定自己捣鼓一下,使用方法大多来源网上本文章只是记录一下使用过程。二、下载安装1.官网下载地址:https://www.sonarsource.com/products/sonarqube/dow......
  • SonarQube安装配置
    写在前头SonarQube7.9及以后的版本不再支持MySQLSonarQube7.9之前的版本要求MYSQL5.6-8.0本文安装版本:JDK11、sqlServer2017、SonarQube7.9.1(其他版本试了没成功,参考这位大佬才成功安装)SonarQube-7.9.1+SQLServer2017在Windows环境下的安装与配置-advLuo-博客园(cnbl......
  • centos7 安装 SonarQube
    3.1安装postgresql数据库yuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmyuminstall-ypostgresql13-server/usr/pgsql-13/bin/postgresql-13-setupinitdbsystemctlenablepostgresql-13systemctls......
  • sonarqube启动报错:You must address the points described in the following [2] line
    Youmustaddressthepointsdescribedinthefollowing[2]linesbeforestartingElasticsearch.bootstrapcheckfailure[1]of[2]:maxnumberofthreads[3870]foruser[sonar]istoolow,increasetoatleast[4096]bootstrapcheckfailure[2]of[2]:maxvi......
  • SonarQube系列-通过配置扫描分析范围,聚焦关键问题
    在许多情况下,你可能不希望分析项目中每个源文件的各个方面。例如,项目可能包含生成的代码、库中的源代码或有意复制的代码。在这种情况下,跳过这些文件分析的部分或全部方面是有意义的,从而消除干扰并将焦点缩小到真正重要的问题上。如果SonarQube的结果不相关,那么没有人会想要使......
  • 如何在Jenkins Pipeline中接入SonarQube进行代码扫描
    随着软件开发项目的不断增多,代码质量的管理变得愈发重要。SonarQube是一个开源的代码质量管理平台,它可以帮助开发团队发现和修复代码中的各种问题,从而提高代码的质量。而Jenkins是一个广泛使用的持续集成和持续交付工具,它可以自动化构建、测试和部署应用程序。本文将介绍如何在Jen......