手把手教你SonarQube入门安装与使用
简介
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。
Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。
支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。
Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
- 不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 - 潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。 - 糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。 - 重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。 - 注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。 - 缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。 - 糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。
安装
SonarQube 版本很多,对JDK版本要求也不同,这里以7.3 Community版本为例。
基于CentOS系统安装
环境信息
工具/环境 | 版本 |
---|---|
CentOS | 7.4 |
SonarQube | 7.3 |
MySql | 5.7 |
JDK | 1.8 |
- 官网下载对应操作系统的安装包,官网下载链接:https://www.sonarqube.org/downloads/
- 安装
注意事项:
- SonarQube安装使用依赖JDK,需提前安装配置好JDK相关信息
- SonarQube安装使用依赖数据库和ElasticSearch,故需要提前准备好数据库和ElasticSearch相关资源
注意:SonarQube 7.3 版本要求MySQL版本不能低于5.6且提前创建好名为sonar的数据库
- 启动SonarQube和ElasticSearch不可使用root账户,故需要提前创建好新的用户组和用户,被赋予SonarQube文件夹可操作权限
第一步: 上传并解压安装包至任意工作目录,这里以/home为例
第二步:新建用户组sonar和用户sonar并分配sonar目录可操作性权限
第三步: 切换至sonar用户启动SonarQube
启动过程中可进入logs目录查看相关服务启动日志,启动成功之后浏览器访问:http://IP:9000 即可
第四步: 安装必要插件
因官网下载安装的系统界面语言为英文,且不可导出pdf报告,简单介绍如下安装插件
上传插件包到sonarqube安装目录下的extensions/plugins/目录下,然后重启系统即可。
第五步: 登录系统
登录Web系统,确实账号密码为admin/admin
使用
结合Maven如何利用Sonar分析代码
在工程根目录执行如下命令分析代码质量
mvn sonar:sonar -Dsonar.host.url=http://180.8.2.99:9000 -Dsonar.login=c3e9b746e26f0fef387a0e8eb4ccfc0d6c6a94b0
注意:最后面的login参数可在Web系统页面获取
- 进入创建token页面
- 手动生成一个token
- 通过maven命令分析代码质量
- 分析结束,在登录Web系统查看及下载分析报告
结语
欢迎关注微信公众号『码仔zonE』,专注于分享Java、云计算相关内容,包括SpringBoot、SpringCloud、微服务、Docker、Kubernetes、Python等领域相关技术干货,期待与您相遇!
手把手教你SonarQube入门安装与使用的更多相关文章
- 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】
转载自:http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...
- 【Jenkins持续集成(一)】SonarQube 入门安装使用教程
一.前言 持续集成管理平台不只是CI服务器,是一系列软件开发管理工具的组合. 源码版本管理:svn.git 项目构建工具:Maven.Ant 代码质量管理:Sonar(Checkstyle.PMD.F ...
- 手把手教android studio中安装Android Butterknife Zelezny (转)
原文地址:http://blog.csdn.net/xin917480852/article/details/51176524 用来快速生成findViewById() 安装方法: 打开Android ...
- 手把手教你Chrome浏览器安装Postman(含下载云盘链接)(转)
文章转自http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...
- 理解 Redis(2) - 手把手教你理清 Redis 安装全过程
Redis 官网 https://redis.io/ 之前学习 Redis 学了好多次, 下载安装也都按照教程或官网文档弄过, 但是对于安装过程一直有点迷糊, 感觉稀里糊涂地就好了, 就可以用了. 这 ...
- 手把手教你如何逐步安装OpenStack
[TechTarget中国原创] 尽管OpenStack官方提供的在线安装教程和分步向导能够为管理员提供很大帮助,但是依然存在很多不尽如人意的地方.因此在Ubuntu上安装OpenStack的过程当中 ...
- jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置(详解)
简介 上一篇对jenkins有了大致了解之后,那么我们就开始来安装一下jenkins. Jenkins安装 一.安装Java环境 1.你需要做的第一件事情就是在你的机器上安装Java环境.Jenkin ...
- jenkins手把手教你从入门到放弃03-安装Jenkins时web界面出现该jenkins实例似乎已离线
简介 很久没有安装jenkins了,因为之前用的的服务器一直正常使用,令人郁闷的是,之前用jenkins一直没出过这个问题. 令人更郁闷的是,我尝试了好多个历史版本和最新版本,甚至从之前的服务器把je ...
- jenkins手把手教你从入门到放弃01-jenkins简介(详解)
一.简介 jenkins是一个可扩展的持续集成引擎.持续集成,也就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础.持续集成是一种软件开发实践, 即团队开 ...
随机推荐
- dpi dp px 换算关系
getResources().getDisplayMetrics().densityDpi 就是屏幕密度.getResources().getDisplayMetrics().density 也可以理 ...
- PCA主成分分析的矩阵原理
[前言]主成分分析(PCA)实现一般有两种,一种是对于方阵用特征值分解去实现的,一种是对于不是方阵的用奇异值(SVD)分解去实现的. 一.特征值 特征值很好理解,特征值和特征向量代表了一个矩阵最鲜明的 ...
- matplotlib工具栏源码探析三(添加、删除自定义工具项)
转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具 ...
- Java练习——抽象类
需求: 2辆宝马,1辆别克商务舱,1辆金龙(34)座,租5天共多少租金. 轿车 客车(金杯.金龙) 车型 别克商务舱GL8 宝马550i 别克林荫大道 <=16座 >16座 日租费(元 ...
- 03----python入门----函数相关
一.前期知识储备 函数定义 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 () 任何传入参数和自变量必须放在圆括号中间,圆括号 ...
- STM32 ADC详细篇(基于HAL库)
一.基础认识 ADC就是模数转换,即将模拟量转换为数字量 l 分辨率,读出的数据的长度,如8位就是最大值为255的意思,即范围[0,255],12位就是最大值为4096,即范围[0,4096] l ...
- MyBatis架构分析
我们都知道Mybatis是一个非常小巧灵活的ORM框架,深受国内广大开发者的喜爱,我们知道它的出现某种程度是为了消除所有的JDBC代码和参数的手工设置以及结果集的封装问题:基于这个一点,我们就可以 ...
- k8s 日志收集之 EFK
如今越来越多的应用部署在容器之中,如何收集日志也是一个很重要的问题.服务出问题了,排查问题需要给开发看日志.服务一般会在多个不同的 pod 中,一个一个的登进去看也的确不方便.业务数据统计也需要日志. ...
- unbutu系统扩展磁盘大小
建议下载一个可视化工具,这样的话就更不容易出错 sudo apt install gparted 在终端中运行这条命令就可安装可视化工具 fdisk -l 在终端中输入这条命令来查看自己系统所挂载的磁 ...
- 攻防世界 reverse 进阶5-7
5.re-for-50-plz-50 tu-ctf-2016 流程很简单,异或比较 1 x=list('cbtcqLUBChERV[[Nh@_X^D]X_YPV[CJ') 2 y=0x37 3 z= ...