个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统

Posted 个推

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统相关的知识,希望对你有一定的参考价值。

一个项目的成功与失败,系统的性能都很大程度的取决于项目的整体代码质量。

在个推,整个现网系统被分割成了许多不同功能的模块,不同的模块交由不同的小组进行开发。面对高速的版本迭代,和越来越复杂的系统逻辑。作为保证整个系统性能的重要因素之一,代码质量需要统一的管理并推广到各个开发人员。SonarQube 正是在这种情况下被集成入个推持续集成系统。下面个推技术大牛来给大家分享一些关于持续集成SonarQube 代码质量管理系统的使用经验。

平台架构

如下图所示,整个代码管理平台由,Analysers, Server , Database 组成。 当然,根据需求不同 SonarQube 也支持 Eclipse 等其他IDE 的集成。

在这里我们主要介绍由Analysers, Server , Database 组成的平台。

Server : 指的是SonarQube 服务器,提供代码管理与分析的源数据(例如,分析规则—Rules)和展示平台。

Database : 用来存储Server 的信息和Analyser的 分析数据。

Analysers: 准确来说,这里的Analysers 指的是由不同方式集成于项目,或独立的代码分析程序或插件。

例如,Analyser 可以集成在 Maven 里, Jenkins里 或者独立的 Sonar-Runner.

部署方式

很多时候,代码质量监控都是基于持续集成系统,从而完善整个持续集成流程。这里主要介绍怎样在Jenkins 上快速部署 SonarQube,以达到代码质量统一管理; 怎样让每个程序员可以独立的检查自己的代码质量,以增加每次集成的质量。

1. 准备数据库

2. 安装 ,配置Sonar-Qube 服务器

3. 安装,配置Jenkins SonarQube 插件

4. 安装,配置 Sonar-runner

准备数据库

Sonar-Qube 支持多种数据库,在这里我们使用 mysql. 进入 Mysql , 然后运行以下命令来创建数据库和授予数据库权限。

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

mysql> FLUSH PRIVILEGES;

安装 Sonar-Qube 服务器

下载最新版本的 Sonar-Qube , 解压缩到本地安装路径。

Sonar-Qube 提供非常简单有效的配置方式,本例中我们只需要修改位于 Conf 文件下的 sonar.properties 文件。

主要修改项目如下:

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.web.context=“sonar web 环境路径” 默认用 /

sonar.web.port=”sonar web 端口”

安装,配置Jenkins SonarQube 插件

进入Jenkins 插件管理页面,安装SonarQube 插件。

安装完后,Jenkins 主要有SonarQube 和 Sonar-Runner 两个配置项。(默认SonarQube 登陆账户为admin , 密码为admin。)

个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统

Jenkins服务器安装Sonar-Runner

下砸并解压Sonar-Runner 到本地安装路径,并配置Jenkins sonar-runner 指向安装路径

个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统

本地机 安装Sonar-Runner

下载并解压Sonar-Runner 到本地安装路径,并添加本地环境变量为 sonar-runner-2.4/bin

本地机器必须修改位于sonar-runner-2.4/conf 文件夹下的sonar-runner.properties文件。(Jenkins 服务器可选,因为Jenkins 会缺省加载SonarQube的配置)。 主要配置项如下:

sonar.host.url=http://localhost:8100

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.login=admin

sonar.password=admin

代码质量管理

配置完所有工具以后,就可以进入SonarQube 安装路径的bin 文件,并找与服务器操作系统想对应的文件夹。 然后运行 sonar start,来启动SonarQube 服务器。

代码分析配置:

个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统

在Jenkins 里的配置如下图。具体配置项可参考http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Runner

本地运行Sonar-Runner 则需要在待分析的项目根目录里创建一个名为sonar-project.properties 的文件,然后添加 Analysis properties 的代码分析配置项。然后在命令行里进入到待分析项目根目录并执行 sonar-runner。

这样代码既可以通过Jenkins Job来监控代码库,也可以让程序员自己先检查然后在集成入主代码库。

代码分析执行完后,根据SonarQube里web 选项中所配置的信息,登陆查看分析结果。

总结

当模块之间的联系越来越复杂,代码质量管理也面临越来越多的困难,SonarQube 代码质量管理系统给个推解决了很大的难题,这套解决方案帮助个推更好的进行产品迭代和优化,由此个推也能给广大开发者们提供更优质的推送技术服务!

以上是关于个推怎么管理亿级代码的质量?持续集成SonarQube 代码质量管理系统的主要内容,如果未能解决你的问题,请参考以下文章

devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置

devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置

持续集成之代码质量管理———Sonar

持续集成之代码质量管理 Sonar

持续集成之代码质量管理——Sonar

持续集成之代码质量管理-Sonar [三]