Sonar是一个用于代码质量管理的开源平台,用于管理代码的质量,通过插件形式可以支持二十几种语言的代码质量检测,通过多个维度的检查了快速定位代码中潜在的或者明显的错误。Sonar目前支持多种ide的插件安装,这里介绍在IDEA中的安装方式,其它的可以查看官网 sonar的插件名称为 SonarQube for IDE。
Sonar简介
Sonar 是代码质量管理平台。能检测出项目中存在的以下问题:
1、项目中缺乏单元测试。统计每行代码的单元测试覆盖率。 2、检测重复代码。监测项目中存在的冗余代码,并给出合并建议。 3、缺少注释或注释过多。没有注释将使代码可读性变差,而过多的注释又会使得开发人员花费过多的精力去阅读注释,违背初衷。 3、潜在的缺陷。一些可能出现的运行时异常会给出警告。 4、代码不规范。如类、方法以及变量的命名是否遵守驼峰命名。 4、糟糕的复杂度分布。文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
安装SonarQube for IDE
安装SonarQube for IDE
File->Settings->Plugins->Marketplace->输入SonarQube for IDE->Install

使用SonarQube for IDE
分析选中的项目/文件:项目/文件右键->SonarQube for IDE->Analyze with SonarQube for IDE

分析当前文件:当前文件内容右键->SonarQube for IDE->Analyze with SonarQube for IDE
分析报告

代码检测报告会存在默认地址,同时也会实时的展示在控制台,例如如图共检测到 6 个代码质量问题,无安全热点和污点漏洞。以其中的第二个质量问题为例子.

这里 SonarQube 报了1个问题:变量名record被标记为java:S6213。
提示:Rename this variable to not match a restricted identifier.原因:Java 中 record 是受限标识符(从 Java 16 开始,record 被用来定义数据类,比如 public record User(String name) {})。虽然你这里用 record 当变量名能编译,但会让代码可读性变差,也容易和新语法混淆,所以 Sonar 不推荐。
右下角的Rule给出的是你所被检查出来的问题的Demo以及解释,以便于你更好的理解出现的问题。
夜雨聆风