基于SonarQube代码质量检查

SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。


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


使用SonarQube进行扫描,需要进行环境配置,具体配置方式参看:

https://my.oschina.net/shuming/blog/2052375

具体扫描,配置。

需要到你要扫描的工程根目录下,创建文件:sonar-project.properties。

我配置如下(我用到是公司的php工程):

sonar.projectKey=sonar-runner-simple

sonar.projectName=MyProject

sonar.projectVersion=1.0

 

sonar.sources=.

sonar.language=php

 

sonar.sourceEncoding=UTF-8

然后启动SonarQube之后,打开http://localhost:9000/ .

创建一个新工程,点击Generate:

然后再点击continue:

然后进行选择:

最后的生成的命令,需要在命令行cd到我的php工程路径,然后执行该命令:

最后就可以把结果,上传到http://localhost:9000/。

PS:可以在命令行加 "-X" 查看到详细的扫描信息。但是有时又会报错:

ERROR: Error during SonarQube Scanner execution

ERROR: Failed to upload report - 500: An error has occurred. Please contact your administrator
解决办法:修改(或设置)mysql的my.cnf内的max_allowedpacket值,或者直接执行命令:set global max_allowed_packet=1000*1024 *1024 。

然后再重启SonarQube服务(注意:如果是win系统,需要到任务管理器关闭掉全部java.exe进程) 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值