玩转Sonar

Sonar介绍

转载自: https://taosha.club/topic/61c2c6e9d59b034e2c167a54

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 EclipseIntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

名词解释

详见: https://docs.sonarqube.org/latest/user-guide/rules/

  • Code Smell (Maintainability domain)
  • Bug (Reliability domain)
  • Vulnerability (Security domain)
  • Security Hotspot (Security domain)
概念定义
快照在给定时间针对给定项目的一组衡量问题。每次分析都会生成一个快照。
衡量给定文件或项目在给定时间的度量值。例如,MyClass上有125行代码覆盖到了,或者project myProject上有30.5%的重复行密度
问题当一段代码不符合规则时,快照上会记录一个问题。问题可以记录在源文件或单元测试文件中。有 3 种类型的问题:Bug代码异味漏洞
BugAn issue that represents something wrong in the code. If this has not broken yet, it will, and probably at the worst possible moment. This needs to be fixed. Yesterday.
代码气味代码中与可维护性相关的问题。保持原样意味着维护人员最多会比他们对代码进行更改更难。最坏的情况是,他们会对代码的状态感到困惑,以至于在进行更改时会引入额外的错误。
漏洞漏洞是影响应用程序安全性的问题,需要立即修复。
安全热点安全热点是一段对安全敏感的代码,它会突出显示,但不一定会影响整个应用程序的安全性。由开发人员检查代码,以确定是否需要修复程序来保护代码。(Code Review时确认是否需要修复)
新代码从上次检查后的增量代码
规则应遵循的编码标准或实践。不遵守编码规则会导致错误漏洞安全热点代码异味。规则可以检查代码文件或单元测试的质量。
修复成本修复漏洞和可靠性问题所需的估计时间。
技术债务修复所有可维护性问题/代码异味所需的估计时间
活动趋势每次快照的历史记录趋势图

本地安装Sonar插件

idea安装SonarLint插件, 规则和SonarQube平台上的一样
jetbrains插件地址: https://plugins.jetbrains.com/plugin/7973-sonarlint

官网推荐的系统集成方式

  1. 开发人员的代码在自己的IDE和使用SonarLint运行局部分析。
  2. 开发人员推他们的代码到自己喜爱的供应链管理:GIT,SVN…
  3. 持续集成服务器触发自动构建和SonarQube扫描仪的运行SonarQube分析所需的执行。
  4. 分析报告被发送到SonarQube服务器进行处理。
  5. SonarQube服务器处理和存储分析报告导致SonarQube数据库,并显示结果在UI中。
  6. 开发者审核,评论,挑战他们的管理,并通过SonarQube UI减少他们的技术债务问题。
  7. 开发经理收到分析报告。 OPS使用API从SonarQube自动化配置和提取数据。 OPS使用JMX来监控SonarQube服务器。

img

Q&A

  1. 一个项目分析哪个分支,是不是只能管理员来控制,如果多个开发者在开发多个分支,想各自对不同的分支来分析,该怎么做?
  2. 现在的提交分析的机制是什么样子的?
  3. 提交成功后有没有通知机制?
  4. 单元测试的覆盖率该如何集成到SonarQube上?
  5. 有没有对于那些对业务无实际坏影响的代码,在sonar中能不能定制化规则,把这些异味或者显示修改的地方去掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值