SonarQube

IT
IT
IT
335
文章
1
评论
2020年5月30日16:48:53 评论 1,242 4416字阅读14分43秒

SonarQube代码质量检查工具简介

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量

Sonar 不只是一个质量数据报告工具,更是代码质量管理平台

SonarQube

支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。

Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

  1. 不遵循代码标准
  2. sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
  3. 潜在的缺陷sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
  4. 糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
  5. 重复显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
  6. 注释不足或者过多没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
  7. 缺乏单元测试sonar可以很方便地统计并展示单元测试覆盖率。
  8. 糟糕的设计通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。

为什么要选择sonarQube?

个人使用之后认为 : sonarQube的优势如下(相比于阿里编码规约这种市面上常见类似软件):

  1. 更加优秀的图形化界面基本上通过界面就可以对自己项目的代码状况一目了然
  2. 可以查询出其它软件难以定位到的问题比如 :可能导致空指针异常的问题 (对象在进行使用前没有加空的判断)可能导致内存泄漏的问题, 在try catch 块里面,直接使用e.printStackTrace()将堆栈信息打印到内存的可能导致的漏洞 : 成员变量使用public定义的还有诸如 : 流等未关闭或者是非正常关闭都能够检测出来!功能非常强大!!

安装SonarQube web server

  1. 首先确保安装了jdk11 +
  2. 到此链接 https://www.sonarqube.org/downloads/

下载sonalqube(下载社区版,是开源的),

我下载的是sonarqube-7.9.3,因为最新版7.9.1需要jdk11支持

[root@dispatch001 opt]# java -version
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

创建用户

此处为隐藏的内容!
登录后方可查看!
下载信息 安装包
网盘密码:登录可见
下载地址:登录可见
继续阅读
  • 我的QQ
  • QQ扫一扫
  • weinxin
  • 我的头条
  • 头条扫一扫
  • weinxin
IT
  • 本文由 发表于 2020年5月30日16:48:53
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Eureka同步到nacos Nacos

Eureka同步到nacos

官方介绍文档地址 https://nacos.io/zh-cn/docs/nacos-sync.html 官方安装文档地址 https://nacos.io/zh-cn/docs/nacos-sync...
Eureka指定应用的instanceId为IP CentOS

Eureka指定应用的instanceId为IP

痛点 现在所有的应用指定的是服务器默认机器名称,对查看是哪一个服务IP或者单节点自动剔除服务不友好。 像如上图所示,想知道是哪一个节点,还得点开才能获取IP。 改造 全部改成自动获取服务器IP为ins...
阿里云网盘 CentOS

阿里云网盘

申请内测地址 https://survey.aliyun.com/apps/zhiliao/_o6XQjioM 官网地址 https://www.teambition.com/products/pan...
GitLab或Jenkins集成构建工具 CentOS

GitLab或Jenkins集成构建工具

集成构建工具 构建工具是用来将代码编译打包成制品的工具。例如前端项目我们一般使用npm进行打包,后端java项目我们一般使用maven、gradle进行打包。构建工具很多很多,但是集成到gitlab中...