代码静态扫描工具sonar介绍

2023-11-06

一、SonarQube整体介绍

   SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。

   通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理

可以从七个维度检测代码质量:

(1)复杂度分布(complexity):代码复杂度过高将难以理解
(2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方

(3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
(4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
(5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
(6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug

(7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度

二、SonarQube平台由四部分组成:

1、 SonarQubeServer 

1) Web Server, 浏览质量的快照和配置sonarqube实例

2)SearchServer based on Elasticsearch, 执行来自页面的查询请求

3)Compute EngineServer ,处理代码分析报告并保存在sonarqube数据库

2、SonarQube Database :

 1) sonarqube实例的配置(安全、插件设置等)

2) 项目、视图等的质量快照。

3、SonarQube Plugins

语言、SCM、集成、身份验证和治理插件

一个或多个sonarqube Scanners运行分析项目

 

三、集成

下面是SonarQube与其他sonarqube ALM工具如何集成以及SonarQube各种组件在何处被使用。

1)开发者在IDE开发代码并使用sonarlint运行本地分析

2)开发者把代码提交到SCM工具中:git, SVN, TFVC, ...

3)持续集成服务器触发自动编译以及执行SonarQubeScanner

4)SonarQubeServer 处理分析报告

5)SonarQubeServer 处理并存贮分析报告到数据库里并在页面上显示处理结果.

6)开发者审查解决他们的问题,在页面管理问题

7)管理者获得分析报告
Ops
可以使用API从 SonarQube抽取数据
Ops 可以使用 JMX 监控 SonarQubeServer.

四、关于机器部署

1、只能有1SonarQube Server 1 SonarQube Database

2、考虑性能优化,每一个组件(server, database, scanners)应当安装在不同的机器上,并且是专用服务器。

3SonarQubeScanners 可以水平扩展机器

4、所有机器的时间必须要同步

5SonarQube Server

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码静态扫描工具sonar介绍 的相关文章

  • Sonar代码质量管理服务搭建并导入java项目

    1 软件下载 7 4 2 软件配置 打开解压后文件conf sonar properties mysql版本必须大于5 6小于8 0 MySQL gt 61 5 6 amp amp lt 8 0 sonar jdbc url 61 mysq
  • lombok 中的@Data注解引起sonar的FindBugs问题

    实体类中增加 64 Data注解 xff0c 那样实体类在编译时就会自动生成getters and setters xff0c 虽然这么写可以使代码看起来更加的简洁 xff0c 但是会引起sonar的坏味道 xff0c 如果不涉及到代码的F
  • jenkins配置sonar并扫描C#代码

    背景 我的jenkins搭在linux上 1 下载插件 下载插件sonarqube scanner 用来集成sonarqube 在配置任务的时候才有sonarscanner的选项 2 全局工具配置 全局工具配置windows本地的msbui
  • sonar 规则总结

    bug类型 1 equals should not be used to test the values of Atomic classes bug 主要 不要使用equals方法对AtomicXXX进行是否相等的判断 Atomic变量永远
  • sonar报java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)

    昨天运行sonar还好好的 今天运行就自动退出了 sonar log日志文件如下 gt Wrapper Started as Console Launching a JVM Wrapper Version 3 2 3 http wrappe
  • SonrLint常见解决方案

    Sonar是什么 Sonar是一个用于代码质量管理的开源平台 用于管理源代码的质量 通过插件形式 可以支持包括java C C C PL SQL Cobol JavaScrip Groovy等等二十几种编程语言的代码质量管理与检测 Sona
  • docker搭建sonar服务

    拉取数据库 docker pull postgres 启动postgres数据库创建sonar用户 docker run name db p 5432 5432 e POSTGRES USER sonar e POSTGRES PASSWO
  • Sonar代码扫描常见规则总结

    Sonar代码扫描常见规则 最近公司项目交付 交付前集成 功能 性能 安全种种测试工作就来了 由于测试离职 被抓壮丁 兼职起测试修改工作 小公司 平时敲 ctrl c 代码 ctrl v 时 同事也不在意一些代码规范 以及一些常见的规约要求
  • Java中double,float类型比较大小或相等的方法-soanr扫描问题Floating point numbers should not be tested for equality

    由于在二进制表示中存储这些值的挑战 浮点数学是不精确的 更糟糕的是 浮点数学不是关联的 推动float或double通过一系列简单的数学运算 由于每个步骤发生的舍入 答案将根据这些操作的顺序而不同 即使是简单的浮点赋值也不简单 float
  • Docker 搭建sonarqube,并集成阿里P3C规则

    简介 本文安装的sonarqube是7 6 community版本 未安装最新版是因为7 9之后不再支持mysql 如果你安装的是其他版本的sonarqube 那么不要使用插件包中的插件 会有版本兼容性问题 插件 插件包 插件包中包含jav
  • 【Sonar技术债务解】Null pointers should not be dereferenced

    SonarLint Null pointers should not be dereferenced A NullPointerException could be thrown getReauestAttributes0y can ret
  • 代码静态扫描工具sonar介绍

    一 SonarQube整体介绍 SonarQube为静态代码检查工具 采用B S架构 帮助检查代码缺陷 改善代码质量 提高开发速度 通过插件形式 可以支持Java C C JavaScripe等等二十几种编程语言的代码质量管理与检测 通过客
  • SonarQube异常处理

    2019 07 02 16 42 22 WARN app o s application App SonarQube will require Java 11 starting on next version 2019 07 02 16 4
  • sonarqube汉化

    参考文档SonarQube基础 中文设定设定方法 知行合一 止于至善 CSDN博客 sonarqube设置中文 用方法一解决
  • sonar扫描时报Failed to upload report - An error has occurred. Please contact your administrator

    本人新学习使用此软件 参考网络各大神资料后解决问题方法如下 此问题产生的原因在于mysql的max allowed packet 参数限制默认为4M 将设置进行修改就可以了 mysql根据配置文件会限制server接受的数据包大小 有时候大
  • Sonar安全

    1 Using Struts 1 ActionForm is security sensitive 使用Struts1的ActionForm是安全敏感的 All ActionForm s properties should be valid
  • IDEA中SonarLint插件的安装与配置

    本文内容概要 本文介绍了IDEA SonarLint插件的装 以及配置SonarLint使用 SonarQube的规则 注意 不含有SonarQube安装和使用 代码管理Sonar和SonarLint简介 Sonar简介摘自sonar百度百
  • Linux环境下 sonar、sonar-scanner、cppcheck配置并汉化

    所需安装包以及插件 我的文件夹如下 文件最好按我的方式存放 以免后面修改路径 下载文件并复制到Linux环境 下载以上所有文件 下载链接 链接 https pan baidu com s 1WUYqFg1MEqVEzbb sn49Ig 提取
  • sonarqube主要功能概览

    sonarqube质量标准 sonarqube通过可靠性 安全性 安全复审 可维护性 覆盖率 重复度等方面来评价代码质量 分别使用bugs 漏洞等指标 如图 有项目状态为正常 有项目状态为错误 点进项目可以看具体 可以对问题进行分配 处理
  • sonar 配置sonarqube分析unity中的C# 代码

    参考文档 使用SonarQube对Unity项目进行代码分析的问题记录 zerozabuu 博客园 一文搞定 SonarQube 接入 C NET 代码质量分析 狂师 博客园 需要分析的代码是unity下的C 代码 配置流程主要参考上面两个

随机推荐

  • (模电笔记四 By Multisim)典型运算放大电路案例分析(同相反相差分)

    1 反相比例运算电路 1 输入 U i U i Ui 与输出 U
  • 【研究记录】dummy related tips

    Q 生成dummy但是条件太多 string太长 A 参考 合成控制法时候expression too long错误解决问题 Stata专版 经管之家 原人大经济论坛 pinggu org local code1 C25 C26 C27 C
  • 鸿蒙-实践课程五 android、HarmonyOS Database

    在android中使用到数据包括 sqlite mysql等等 使用最多是 greenDao 是 Android中一个开源的对象关系映射框架 能够提供一个接口通过操作对象的方式去操作关系型数据库 完成 Java 对象的存储 更新 删除和查询
  • 向量数据库介绍

    1 什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库 它不同于传统的关系型数据库 而是基于向量相似度匹配的方式来实现高效的数据查询和分析 2 向量数据库的应用场景 2 1 应用场景概览 向量数据库是一种专门用于存储和检索向
  • ChatGPT 最全中文指南

    ChatGPT 中文指南 ChatGPT模型是由OpenAI训练的大型语言模型 能够生成类人文本 通过向它提供提示 它可以生成继续对话或扩展给定提示的响应 在此中 您将找到可与 ChatGPT 一起使用的各种提示 它能干什么 直接问它 我是
  • PTA 列车调度 (25 分)

    7 11 列车调度 25 分 火车站的列车调度铁轨的结构如下图所示 两端分别是一条入口 Entrance 轨道和一条出口 Exit 轨道 它们之间有N条平行的轨道 每趟列车从入口可以选择任意一条轨道进入 最后从出口离开 在图中有9趟列车 在
  • origin如何绘制双y轴曲线_「科研干货」如何利用Origin高效绘图丨附下载

    初识Origin Origin是一款数据分析和制图的软件 具备统计 峰值分析和曲线拟合等分析功能 可以绘制出二维和三维图形 支持Excel数据导入 甚至txt 直接把txt数据文件拖入到Origin里面 但是Origin对中文的兼容性不是特
  • 3D Tiles格式介绍(1)——概要

    3DTiles格式介绍总目录 https blog csdn net qq 31709249 article details 102643371 前一段时间写了glTF的格式解析 传送门 https blog csdn net qq 317
  • Ubuntu安装Android Studio和SVN配置

    Ubuntu安装Android Studio和SVN配置 Java jdk的配置 在 home hongzhen 目录下新增Java目录 下载Java的Linux包 放到 home hongzhen Java目录下 执行tar zxvf j
  • unity有限状态机和模糊状态机(怪物AI、自动寻路)

    自动寻路步骤 1 把场景中不同的物体勾选static 2 烘培寻路网格 3 添加NavMeshAgent组件 4 给需要寻路的物体添加脚本 游戏中有限状态机的体现 小怪的巡逻和追逐功能 模糊状态机的体现 当玩家离小怪比较近时 小怪会追逐玩家
  • 线程方法wait/wait(timeout)源码分析

    1 wait wait timeout wait有三个重载的方法 但是最终都是调用native的wait timeout 方法 那我们来看看这个方法在jvm中具体做了些什么 图1 1 图1 2 java中的object wait方法对应c
  • 基础算法题——最短路计数(bfs遍历)

    最短路计数 题目描述 给出一个N个顶点M条边的无向无权图 顶点编号为 1 N 问从顶点1开始 到其他每个点的最短路有几条 输入格式 第一行包含2个正整数 N M 为图的顶点数与边数 接下来M行 每行2个正整数 x y 表示有一条顶点x连向顶
  • Graft货币(GRFT)结点搭建

    Graft官网 https www graft network github地址 https github com graft project GraftNetwork releases 节点搭建 从https github com gra
  • MPC车辆轨迹跟踪----理论推导

    MPC控制简介 众所周知 控制算法中 PID的应用占据了90 而另外10 就是这次的主角MPC控制算法 MPC控制算法全称模型预测控制 它相对比PID有着多输入 多输出以及更加平稳的特点 并且最重要的是 MPC可以针对非线性的系统进行控制
  • PCB正片和负片有什么区别

    PCB正片和负片有什么区别 概念 正片和负片是底片的两种不同类型 正片 简单地说就是 在底片上看到什么就有什么 负片 正好相反 看到的就是没有的 看不到的就是有的 见下图 在 Allegro中使用正负片的特点 正片 优点是所见所的 有比较完
  • IDEA 2018 Mybatis Plugin插件安装破解及使用

    一 进入官网http plugins jetbrains com 二 搜索Free MyBatis Plugin 三 点击get 选择Free Mybatis plugin 点击下载 四 下载完成 五 打开Idea 点击File 点击Set
  • ARM汇编基础详解(PS学习汇编的原因)

    目录 前言 1 GNU 汇编语法 2 Cortex A7 常用汇编指令 2 1 处理器内部数据传输指令 内部寄存器数据非内存数据 2 2 存储器访问指令 RAM 2 3 压栈和出栈指令 了解 2 4 跳转指令 2 5 算术运算指令 2 6
  • brew 安装 for Mac

    安装命令 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install master install brew 官网 http brew sh 安装过程遇
  • 电子学会2022年09月青少年软件编程C语言等级考试试卷二级真题及(参考答案)

    编程题 共5题 共100分 1 统计误差范围内的数 考试题目 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数 时间限制 5000 内存限制 65536 输入 输入包含三行 第一行为N 表示整数序列的长度 N lt 100 第二行
  • 代码静态扫描工具sonar介绍

    一 SonarQube整体介绍 SonarQube为静态代码检查工具 采用B S架构 帮助检查代码缺陷 改善代码质量 提高开发速度 通过插件形式 可以支持Java C C JavaScripe等等二十几种编程语言的代码质量管理与检测 通过客