前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SonarQube的使用心得

SonarQube的使用心得

作者头像
CeshirenTester
发布于 2022-06-14 14:31:35
发布于 2022-06-14 14:31:35
1.2K0
举报
文章被收录于专栏:测试技术分享测试技术分享

一、使用背景:

代码语言:txt
AI代码解释
复制
   SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。

通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。

代码语言:txt
AI代码解释
复制
   Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

1. 不遵循代码标准

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

2. 潜在的缺陷

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的缺陷。

3. 糟糕的复杂度分布

文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试

4. 重复

显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方。

5. 注释不足或者过多

没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降;而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

6. 缺乏单元测试

sonar可以很方便地统计并展示单元测试覆盖率。

7. 糟糕的设计

通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则:通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况,检测藕合。

二、SonarQube的安装、配置

1、jdk

2、sonarqube官网:

https://www.sonarqube.org/进行下载

3、SonarQube+Scanner扫描分析器:

https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.5.zip

4、mysql数据库

需要注意点,数据库版本要求;;#----- 5.6<=MySQL _<)~~】

还有数据库的查看mysql默认一次允许写入的包大小:

show global VARIABLES like ‘%max_allowed_packet%‘

Sonarz中数据库配置信息如下:

正常启动后,信息提示如下:可以访问http://localhost:9000/ sonar搭建完毕!!

三、SonarQube的分析、扫描

1、安装必要插件--最重要的是汉化包

2、新建项目进行静态代码扫描

sonar-scanner.bat -D“sonar.projectKey=qixiao" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=105d3da15bc1e355d7a8c290d24b1d0465a571af"

3、生成报告分析

四、SonarQube的总结

为什么要选择SonarQube?

个人使用之后认为 :

SonarQube的优势如下(相比于阿里编码规约这种市面上常见类似软件):

  1. 更加优秀的图形化界面基本上通过界面就可以对自己项目的代码状况一目了然
  2. 可以查询出其它软件难以定位到的问题比如 :
代码语言:txt
AI代码解释
复制
2.1.可能导致空指针异常的问题 (对象在进行使用前没有加空的判断)
代码语言:txt
AI代码解释
复制
2.2.可能导致内存泄漏的问题, 在try catch块里面,直接使用e.printStackTrace()将堆栈信息打印到内存的
代码语言:txt
AI代码解释
复制
2.3.可能导致的漏洞 : 成员变量使用public定义的

还有诸如 : 流等未关闭或者是非正常关闭都能够检测出来! 功能非常强大!!

3.可以辅助开发人员往往发现预期以外的问题能够及时避免。

4.针对续代码扫描,以提前一步预防提升代码质量问题。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
新同事写 “烂代码” 偷袭我,看我用神器,反击她!
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java、C#、C/C++、PL/SQL、Cobol、JavaScrip、Groovy等等二十几种编程语言的代码质量管理与检测
公众号 IT老哥
2020/12/29
7950
新同事写 “烂代码” 偷袭我,看我用神器,反击她!
DevOps 工具链:SonarQube 代码质量检查工具总结
SonarQube(sonar)是一个开源平台,用于管理源代码的质量。SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
DevOps时代
2019/10/21
5.3K0
DevOps 工具链:SonarQube 代码质量检查工具总结
在k8s集群部署SonarQube
Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
仙人技术
2020/04/29
4.3K0
在k8s集群部署SonarQube
那些总是写“烂代码”的同学,强烈推荐你使用这款 IDEA 插件!
idea集成sonar的代码检查,实现可以在提交代码前就检查你的代码,而不是将代码提交之后,之后再去检查。
Java团长
2020/06/04
9930
那些总是写“烂代码”的同学,强烈推荐你使用这款 IDEA 插件!
项目有BUG?代码审查没做好?没关系!SonarQube详细使用教程
现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。
互扯程序
2018/07/30
1.3K0
项目有BUG?代码审查没做好?没关系!SonarQube详细使用教程
使用了这个神器,让我的代码bug少了一半
最近一段时间,我们团队在生产环境出现了几次线上问题,有部分比较严重,直接影响用户功能的使用,惹得领导不高兴了,让我想办法提升代码质量,这时候项目工程代码质量检测神器——SonarQube,出现在我们的视线当中。
苏三说技术
2020/11/17
2.2K0
使用了这个神器,让我的代码bug少了一半
Centos部署Sonarqube代码质量管理平台
Centos部署Sonarqube代码质量管理平台
Java架构师必看
2021/06/10
5590
Centos部署Sonarqube代码质量管理平台
SonarQube 安全审计及服务搭建实战
为什么今天要推荐SonarQube呢?这话题要从一次客户的项目交付说起。当时服务要部署入驻到客户方的机房,按要求向信息中心提交申请后,却被告知需提供《服务器安全漏洞扫描报告》和《代码安全审计报告》。按照惯例,这些报告一般由第三方做网络安全的公司提供,但谁知客户不想花钱找第三方公司,最后商量要我方用开源工具扫描,并修复完向他们提供报告。这如何是好,做与不做? 似乎没有选择,必须做。
攻城狮的那点事
2025/05/13
590
SonarQube 安全审计及服务搭建实战
【开发工具专题_01】idea集成SonarLint代码质量管理
代码质量管理工具,顾名思义就是对你的代码质量进行管理与检测;那么为什么会用到这种工具呢,自然就是提高你的代码规范,比如对格式、变量、异常、语法等都会进行检查,毕竟开发的时候偶尔会出现些代码不规范的问题。
夏之以寒
2024/03/04
6030
【开发工具专题_01】idea集成SonarLint代码质量管理
SonarQube基础介绍与在代码检测中的应用
官网描述: SonarQube 提高您的团队成员的代码质量和安全性,使所有开发人员能够编写更干净、更安全的代码。 官网地址: https://www.sonarqube.org/ 帮助文档: https://docs.sonarqube.org/latest/
全栈工程师修炼指南
2022/09/29
5K0
SonarQube基础介绍与在代码检测中的应用
Jenkins+SonarQube+Gitlab搭建自动化持续代码扫描质量平台
现如今大家越来越认识到质量前移的重要性。如果一开始就写出优质的、经过测试的代码,那么后面的测试阶段将会减少很多不必要的时间。如果开发人员迫于业务压力,一味追求项目开发进度,往往会容易形成大量的“烂代码”。 一般的烂代码体现在逻辑混乱、复杂度高、易读性差、没有单元测试和缺乏必要的注释。如果把这样的“烂代码”编译交付测试团队,那么测试人员势必会发现很多低级缺陷,甚至连冒烟测试都无法通过,这样势必会浪费很多时间,延误测试进度。 所以,回到开始,为何不一开始就是写出优质代码呢?
高楼Zee
2019/07/17
5.3K0
Jenkins+SonarQube+Gitlab搭建自动化持续代码扫描质量平台
SonarQube之采购选型参考
SonarQube是DevOps实践中主流的一款质量内建工具,过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。 ​
DevOps在路上
2023/05/16
5430
SonarQube之采购选型参考
Jenkins 在 Tomcat 中的部署及代码静态检查工具集成
在安装了 Jenkins 运行所需的依赖(主要是 JDK)之后,可以通过如下步骤简单快速地部署 Jenkins:
DevOps时代
2018/08/01
2.4K0
Jenkins 在 Tomcat 中的部署及代码静态检查工具集成
CI&CD夺命十三剑7-代码质量扫描工具SonarQube原理及环境搭建
静态代码扫描是CI/CD中重要的一环,可以在代码提交到代码仓库之后,在CI/CD流程中加入代码扫描步骤,从而及时地对代码进行质量的检查。这可以有效地降低后期维护成本,优化产品质量,提高产品交付速度。同时,静态代码扫描还可以将代码问题自动通知给开发人员,使得问题得到及时发现和解决。
大刚测试开发实战
2023/08/29
3.4K0
CI&CD夺命十三剑7-代码质量扫描工具SonarQube原理及环境搭建
SonarQube:为你的PHP代码质量保驾护航
SonarQube是一个开源的代码质量管理平台,用于检测代码中的错误、漏洞和代码规范。它可以与多种工具集成,如Gitlab、Jenkins等,以便在项目拉取后进行连续的代码检查。SonarQube旨在提供一个完整的代码质量管理解决方案,支持多种计算机编程语言,并内置大量常用代码检查规则。
Tinywan
2024/01/10
6500
SonarQube:为你的PHP代码质量保驾护航
年终奖翻倍了,就因为用了它
今年年终翻倍了,可能在大家眼里都不是个事,但是对于我来说确确实实翻倍了。主要原因还是因为主导项目使用了Sonar,提高了开发效率和代码质量为我加了不少分,废话不多说,开搞。
iiopsd
2022/12/23
9670
年终奖翻倍了,就因为用了它
对代码质量进行检查
今天习得了一个不错的项目代码质量检测工具,并且在自己的 IDE 上进行安装,这一实践不要紧,感觉还是很不错的。后来查了文档,这个工具不仅可以在 IDE 上来使用,在项目的持续集成部署上面,依然有用武之地,可以提高项目的代码质量。也就是说在你项目根目录下的 gitlab-ci.yml 文件中把它作为一个持续集成部署中的一个 pipeline,就可以对你上线代码的质量进行把控。这个工具的名字就是 SonarQube,同时针对 JetBrains 也有一款起相同作用的工具 Qodana。
用户1413827
2023/11/28
4420
对代码质量进行检查
代码质量管理平台实战|SonarQube 安装、配置及 JaCoCo、Maven 集成
SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube。此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。 官方网址:https://www.sonarqube.org/ 通过插件形式,可以支持包括 Java,C#,C/C++、PL/SQL、Cobol、JavaScrip、Groovy、Ruby 等二十五种编程语言的代码质量管理与检测,针对不同的编程语言其所提供的分析方式也有所不同:对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能;对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能。 SonarQube 支持多种客户端集成方式,包括但不限于 Scanner 客户端、Ant、Gradle、Maven、Jenkins、IDEA 插件等。比较常用的为 Gradle 和 Maven。 SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JaCoCo 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理,以便进行有针对性的代码修复或重构。 SonarQube 在进行代码质量管理时,会从以下的七个纬度对项目代码质量进行分析。 Sonar 实际上是一个 Web 系统,展现了静态代码扫描的结果,结果是可以自定义的,而真正实现代码扫描的是 Sonar Scanner 这个工具,另外同时支持多种语言的原理是它的扩展性,通过插件实现的,也就是 Java Jar 架包,可以在 Sonar 平台上在线安装或者离线安装。 1.已安装 JDK1.8 环境 2.已安装 Maven(用于后期与 SonarQube、JaCoCo 的集成) 3.已安装 MySQ L数据库(Sonar 默认的数据库是自带 H2 数据库,是很小的嵌入式数据库引擎,这里的配置换成了 MySQL,为了方便通过数据库客户端进行数据查询) 1.下载 SonarQube,地址为: Download | SonarQube 2.配置数据库(下面的SQL是指定了schema为sonar,password为sonar,其中第四条SQL是localhost是因为MySQL安装在本地) 3.安装 SonarQube I. 将下载的 sonar-3.7.zip 包解压至 Windows某个路径,如 D:\Tools\sonar(如是其他OS,请选择对应路径,如Linux的/usr/local/等)。 II. 修改 sonar.properties 在 /conf/sonar.properties 文件中,配置数据库设置(默认已经提供了各类数据库的支持这里使用 MySQL,因此取消 MySQL 模块的注释),同时因为端口冲突而改成端口为 11000。 III.在 /bin/ 目录下,运行 /windows-x86-64/StartSonar.bat (因为本 demo 是在 win10 64位安装的,如果是 Linux 的话,运行 nohup bash sonar.sh start &) IV. 访问 http://localhost:11000,如果不是本机就输入 http://[remote IP]:11000,如果你看到下图所示即证明配置成功。 4.用 admin/admin(默认)进行登录,并安装汉化包 Chinese pack installation Chinese pack restart Chinese pack restart confirm Well done!
霍格沃兹测试开发
2022/05/26
1.6K0
p3c 插件,是怎么检查出你那屎山的代码?
虽然我们都被称为码农,也都是写着代码,但因为所处场景需求的不同,所以各类码农也都做着不一样都事情。
小傅哥
2021/10/08
1.1K0
SonarQube安装
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。
py3study
2020/03/18
2.5K0
推荐阅读
相关推荐
新同事写 “烂代码” 偷袭我,看我用神器,反击她!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档