sonarqube代码质量分析神器安装和使用
1|0sonarqube介绍
SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查。
1|1特征:
- 一个开源的代码质量管理系统
- 支持超过25种编程语言:Java、C/C++、C#、PHP、Flex、Groovy、JavaScript、Python、PL/SQL、COBOL等。(不过有些是商业软件插件)
- 可以在Android开发中使用
- 提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释和软件设计报告
- 提供了指标历史记录、计划图(“时间机器”)和微分查看
- 提供了完全自动化的分析:与Maven、Ant、Gradle和持续集成工具(Atlassian Bamboo、Jenkins、Hudson等)
- 与Eclipse开发环境集成
- 与JIRA、Mantis、LDAP、Fortify等外部工具集
- 支持扩展插件
- 利用SQALE计算技术债务
- 支持Tomcat。不过计划从SonarQube 4.1起终止对Tomcat的支持。
1|2检测标准:
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检测单个任务规则的应用情况, 检测耦合
1|3原理:
SonarQube服务器
1.Web服务器的开发者,管理者,浏览质量快照和配置SonarQube实例
2.基于Elasticsearch搜索服务器从UI向后搜索
3.负责处理代码分析报告计算引擎服务器,并将其保存在数据库SonarQube
4.SonarQube数据库来存储
5.多个插件
6.一个或多个SonarQube Scanners:可以与CI服务进行集成
2|0sonarqube安装
下载链接:https://www.sonarqube.org/downloads/
下载完成直接解压即可
java11下载并配置好环境变量(因为下载的是最新版本8.8,官方说明8.0以后就只支持java11运行环境,如果你安装的不是java11就会出现各种报错)
下载链接:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
3|0sonarqube使用
打开安装目录下的bin目录,这里有多个系统的执行程序
进入win下面的目录,启动Starsonar.bat
启动界面如下则成功(启动时间有点长,请耐心等待):
启动完成后,进入管理界面
访问 http://127.0.0.1:9000/
输入默认的账号admin 密码admin,然后成功进入
然后可以参考我之前的教程进行汉化,这里就不在介绍
3|1扫描项目
1.创建新项目,名称随便填
2.创建令牌
选择适合自己的环境配置,然后按照下面的步骤进行操作
下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
我这里选择windows,然后解压,解压完配置环境变量
进入需要扫描的项目,然后执行生成的扫描命令,每个人的命令不同,请不要复制我的哦
执行会自动生成记录到系统中
进入127.0.0.1:9000
上面这种扫描方式适合临时使用,推荐使用下面的方法
首先在需要扫描的目录下创建sonar-project.properties文件,写入如下配置
然后进入刚才的目录执行sonar-scanner,也同样扫描成功
后面重复执行时,只需要修改版本号即可
__EOF__

本文链接:https://www.cnblogs.com/harry66/p/14724303.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:Harry_666,转载请注明原文链接:https://www.cnblogs.com/harry66/p/14724303.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-05-01 解决-Chrome插件安装时程序包无效:"CRX_HEADER_INVALID"的错误