一、Sonar是什么?

根据我的了解,可以说Sonar包含三个部分:

  • SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查。其目的是对代码库的质量进行360°透视。 为此,它会定期分析项目的所有源代码行。SonarQube是保存分析结果的中心服务器。

  • SonarLint是一个Sonarl IDE插件,可以接收和连接SonrarQube对代码库扫描的结果从而通知Developer, SonarLint本身也可以基于一些规则对代码IDE中的代码进行即时的检测。

  • SonarScanner是分析并将结果发送到SonarQube。可以从 zip 文件运行 SonarScanner,也可以从从 Docker 镜像运行 SonarScanner。使用SonarScanner,测试人员不用安装java开发环境即可完成代码的分析。

二、为什么要使用Sonar?

Sonar是目前主流的自动静态扫描代码的工具。

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持15种语言静态代码分析:Java、JavaScript、C#、TypeScript、Kotlin、Ruby、Go、Scala、Flex、Python、PHP、HTML、CSS、XML 和 VB.NET等。

Sonar可以发现语法特征错误、边界行为特征错误和经验特征错误这三类“有特征”的错误。能够以极低的成本发现以下问题:

  • 使用未初始化的变量;

  • 变量在使用前未定义;

  • 变量声明了但未使用;

  • 变量类型不匹配;

  • 部分的内存泄漏问题;

  • 空指针引用;

  • 缓冲区溢出;

  • 数组越界;

  • 不可达的僵尸代码;

  • 高的代码复杂度;

  • 死循环;

  • 大量的重复代码块;

三、Sonarqube环境搭建

1、安装jdk11

这是前提条件

2、安装和使用sonarqube

1、下载社区版sonarqube,直接解压

官网地址:https://www.sonarqube.org/downloads/

2、不自行搭建数据库,先使用sonarqube自带的数据库

需要注意:

内嵌数据库只能用于测试场景

内嵌数据库无法扩展,也无法升级到新版本的SonarQube,并且不能支持将你的数据迁移至其他数据库引擎。

3、运行sonar

进入到bin目录,使用管理员运行

4、访问http://localhost:9000

5、登录,默认用户和密码admin/admin

需要修改密码

6、添加项目

3、下载和配置SonarScanner

1、下载并解压缩适用于 Windows 的扫描仪:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

如果电脑下载特别慢,尝试使用手机下载,很快就下载完成

2、解压下载的文件,将bin目录添加到%PATH%环境变量中

四、遇到的问题

1、非管理员身份运行sonarqube失败

在windows系统怎么简单就怎么来吧,不使用命令行运行,直接界面运行。

2、Jdk版本不正确

运行sonarqube出现以下提示,需要使用jkd11

sonar入门的更多相关文章

  1. Sonar入门(四):Eclipse集成Sonar

    sonar及其插件在项目中的使用方法 Sonar平台 Sonar平台的安装见一文, 在Sonar平台上进行的检查可以通过hudson进行触发, A. 没有做持续集成的项目可以复制以下hudson上的任 ...

  2. Sonar入门(五):使用 Sonar 进行代码质量管理

    Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. 与持续集成工具(例如 Hudson/Jenkins ...

  3. Sonar入门(一):简介

    什么是Sonar? Sonar是一个开源的代码质量管理平台.它能对代码进行如下7个维度的管理. 使用插件,它可以对20多种语言进行代码质量管理,这其中包括Java,C#,C/C++,PL/SQL等等. ...

  4. Sonar入门(二): Maven集成Sonar

    Sonar对maven提供了简单可配的支持,要做的事情很简单——在maven/conf下settings.xml <profiles></profiles>标签之间添加如下内容 ...

  5. Sonar入门学习

    最近在学习Sonar,配置了好几天,才搭建起来环境,为自己的学习能力感到汗颜,赶紧在此记录一下,所谓好记性不如烂笔头. 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java ...

  6. Ant, JUnit以及Sonar的安装+入门资料

    Ant 感觉是个和Make/Grunt类似的东东,build一个项目用的.安装很容易,跟装JDK类似,就是解压->设环境变量->没了.注意装之前要先确认Java装好了(有点废话). 下载地 ...

  7. iOS Sonar 集成流程

    https://gold.xitu.io/entry/5781e6872e958a0054c93368 作者:advancer_chen,原文链接:http://my.oschina.net/Chen ...

  8. Jenkins+Maven+Sonar系统持续集成环境部署以及配置

    一.Jenkins介绍以及安装 什么是持续集成?   随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...

  9. Gerrit代码Review入门实战

    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerri ...

随机推荐

  1. Seata–分布式事务

    10.1 分布式事务基础 10.1.1 事务 事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销.简单地说,事务提供一种"要 ...

  2. springMVC学习日志一

    一.springMVC流程图省略 二.写一个简单的springmvc的demo来说明 2.1引入springMVC相关的jar包 2.2配置DispatcherServlet 在web.xml < ...

  3. C# 对SQlServer访问的完整类

    using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...

  4. Buffer和Cache的异同

    Buffer的本质是缓冲,常见实例如下面这个: 对,就是铁道端头那个巨大的弹簧一类的东西.作用是万一车没停住(是没停住啊,刹车了但是差一点没刹住那种,不是不拉刹直接撞上来),撞弹簧上减速降低危险,起到 ...

  5. go语言 切片表达式

    切片表达式 切片的底层就是一个数组,所以我们可以基于数组通过切片表达式得到切片. 切片表达式中的low和high表示一个索引范围(左包含,右不包含),得到的切片长度=high-low,容量等于得到的切 ...

  6. ES6扩展——数组扩展

    1.结合扩展运算符使用.通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 //结合扩展运算符使用 function foo(a,b,c){ console.log(a); // ...

  7. 跨平台APP推荐收藏

    时间:2019-04-11 整理:pangYuaner 标题:十大跨平台优秀软件 地址:https://www.cnblogs.com/the-king-of-cnblogs/p/3154758.ht ...

  8. NVidia Jetson Ubuntu 18.04 安装ROS过程中运行sudo rosdep init指令出错

    参考:https://www.cnblogs.com/xuhaoforwards/p/9399744.html 安装ROS过程中运行sudo rosdep init后,出现如下错误LOG: ERROR ...

  9. CSS样式下border的几种线型

    在用border的时候经常会忘记它有多少种线型以及各种线型的写法:每次都得从头开始,或是用到Google.百度之类的,有空整理了一下 (1)none (没有边框,无论边框宽度设为多大) (2)dott ...

  10. Linux定时任务(详细)

    Linux定时任务一.首先查看是否安装了crontab[root@master ~]# rpm -qa |grep crontabcrontabs-1.11-6.20121102git.el7.noa ...