首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jenkins+SonarQube搭建代码质量管理平台

SonarQube简介

SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。

通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理。

SonarQube可以从七个维度检测代码质量:

(1)复杂度分布(complexity):代码复杂度过高将难以理解

(2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方

(3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况

(4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范

(5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读

(6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug

(7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度

SonarQube的架构

1.Database

2.SonarQube Server

3.SonarQube Scanner

4.Project

安装SonarQube

1.环境准备

依赖Java环境

数据库(支持SQL Server、Mysql、Oracle、PostgreSQL)

MySQL下载:https://dev.mysql.com/downloads/mysql/ (安装sonarqube6.3需要Mysql5.6以上)小编使用的是MySQL5.7.22版本

2.数据库配置

创建名称为:sonar的数据库(数据库名称可自定义,注意和/conf/sonar.properties配置中一致)

3. 部署SonarQube Server

SonarQube下载地址:https://www.sonarqube.org/downloads/

将下载的soar安装包解压,我这里解压在D盘目录下的sonar目录中

sonarqube服务中配置修改:

/conf/sonar.properties

sonar.web.host=0.0.0.0 sonar.web.port=9000

sonar.jdbc.username=username sonar.jdbc.password=password sonar.jdbc.url=jdbc:mysql://db_host:db_port/sonarqubeuseUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

#sonar.web.context=/your_prefix //非必须,若需要在访问sonarqube服务时加上统一的前缀则配置此项

配置说明:

url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码

启动服务

进入目录

D:\sonar\sonarqube-7.1\bin\windows-x86-64,点击SonarStart.bat,页面输入http://localhost:9000/,出现如下页面,说明配置成功,首次打开会比较慢,因为要初始化数据库信息,默认的登录用户名、密码都为:admin

4.部署SonarQube Scanner

SonarQube Scanner下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+Source+Code

将下载的SonarQube Scanner包解压

将解压后的bin目录路径加入到环境变量中:

......

查看全文内容,点击阅读原文

本文选自本文选自《51测试天地》第五十期

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802B1CFVW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券