sonarqube安装部署(sonarqube教程一)

一 . SonarQube代码质量检查工具简介

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量.

Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。

支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。
Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

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

通过以下介绍SonarQube的安装、使用说明。

为什么要选择sonarQube?

个人使用之后认为 : sonarQube的优势如下(相比于阿里编码规约这种市面上常见类似软件):

1. 更加优秀的图形化界面

基本上通过界面就可以对自己项目的代码状况一目了然

2. 可以查询出其它软件难以定位到的问题

比如 : 可能导致空指针异常的问题 (对象在进行使用前没有加空的判断)
       可能导致内存泄漏的问题, 在try catch 块里面,直接使用e.printStackTrace()将堆栈信息打印到内存的
       可能导致的漏洞 : 成员变量使用public定义的
       还有诸如 : 流等未关闭或者是非正常关闭都能够检测出来!
       功能非常强大!!

二. 安装:

2.1 安装SonarQube web server

1. 根据jdk 选择自己需要的版本 ,至少需要jdk8+,  SonarQube 8.0以上版本需要jdk11+
2.  到此链接 https://www.sonarqube.org/downloads/ 
下载sonalqube(下载社区版,是开源的),


在这里插入图片描述
并解压,解压完之后的目录如下 :
在这里插入图片描述

2.2 配置数据库

修改 /conf/sonar.properties配置文件,添加Mysql相关配置

我们需要在本地数据库 新建一个 sonarqube 库


sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=用户名  // 刚刚创建的sonarQube用户
sonar.jdbc.password=密码   // 创建用户对应的密码
sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8
sonar.login=admin             // 登录账号
sonar.password=admin     // 登录密码

附 : 一些关键配置的修改,如 主机地址,context,端口号等:
通常情况下使用默认的配置即可!
文件 /conf/sonar.properties
#sonar.web.host=0.0.0.0
#sonar.web.context=
#sonar.web.port=9000

注意 :在conf目录下的sonar.properties文件下: 有这样一行配置 : #----- MySQL >=5.6 && < 8.0 所以, mysql版本过高的话,要降级!!

启动

  1. 到解压目录的bin\windows-x86-64(我的是64位的)目录下:
    双击StartSonar.bat文件 启动SonarQube
    第一次 启动 会自动初始化数据库,所以会慢一点 ,稍等即可
4. 到浏览器界面,输入 : http://localhost:9000 
// 能够进入界面证明安装成功

观看窗口 ,如下则表示启动成功
在这里插入图片描述

如果启动失败或者窗口自动关闭 ,我们可以 在 sonarqube-7.4\logs 日志目录查看 报错信息
,一般启动错误 基本上都是 数据库 不存在 或者 端口冲突 仔细检查一下

排错1:

无法初始化数据库:

报错:logs/web.log Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.

解决办法:
$ vim /etc/my.cnf binlog-format=MIXED # 指定binlog格式为mixed。默认为STATEMENT,数据无法正常 # 参考:https://www.devside.net/wamp-server/mysql-error-impossible-to-write-to-binary-log-since-binlog_format-statement

排错2:

历史脏数据冲突:

报错: Web server startup failed: Current version is too old. Please upgrade to Long Term Support version firstly.

解决办法: 清理历史数据(因首次安装,直接drop掉sonar表,然后重建),然后重启sonar即可!

三. 使用

3.1. 安装必要的插件 (最重要的是汉化包)

点击 导航栏的 config, 选择应用市场
搜索 Chinese pack, 点击install进行安装

安装成功后, 重启 SonarQube !

如下图 : 进入到了很友好的中文界面!

在这里插入图片描述
在这里插入图片描述
如果上图 自动安装方式失败 ,我们可以 手动安装中文插件

sonar版本对应的中文插件版本

中文插件 jar 包下载地址
https://github.com/SonarQubeCommunity/sonar-l10n-zh/tags

在这里插入图片描述
一般中文插件尽量选较低一点的 ,如果太高的话 ,重启sonarqube 的时候回报错的

下载对应sonarqube 版本的 中文jar 包,然后把它复制到sonarqube-7.4\extensions\plugins 目录下然后 重新启动 sonarqube 访问地址发现我们的 中文插件已经安装成功了

在这里插入图片描述

如果有大神不想自己下载配置的话 ,这里我把我集成好的 提供给大家下载
码云地址: 链接:https://pan.baidu.com/s/1U2CWhoXz2hA3qzRHGLXcTg
提取码:4y33
我的 访问端口是 : 19002
访问地址 : http://127.0.0.1:19002/admin/settings

代码检测使用教程请访问

sonarqube代码检查使用教程(sonarqube教程二)
 https://blog.csdn.net/weixin_43564627/article/details/107319453
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值