如何搭建Sonarsonar 代码检查质量管理平台

SonarQube代码质量管理平台搭建手册_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
SonarQube代码质量管理平台搭建手册
上传于|0|0|文档简介
&&通过sonar实现代码质量审查,
可集成jenkins实现自动化代码审查
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢持续集成 SonarQube 代码质量管理系统 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
持续集成 SonarQube 代码质量管理系统
15:47:35 +08:00 · 2346 次点击
一个项目的成功与失败,系统的性能都很大程度的取决于项目的整体代码质量。
在个推,整个现网系统被分割成了许多不同功能的模块,不同的模块交由不同的小组进行开发。面对高速的版本迭代,和越来越复杂的系统逻辑。作为保证整个 系统性能的重要因素之一,代码质量需要统一的管理并推广到各个开发人员。 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_
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.jdbc.url=jdbc:mysql://“数据库 IP 地址”:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=” sonar web 界面地址”
sonar.web.context=“ sonar web 环境路径” 默认用 /
sonar.web.port=” sonar web 端口”
安装,配置 Jenkins
SonarQube 插件
进入 Jenkins 插件管理页面,安装 SonarQube 插件。
安装完后, Jenkins 主要有 SonarQube 和 Sonar-Runner 两个配置项。(默认 SonarQube 登陆账户为 admin , 密码为 admin 。)
Jenkins 服务器安装 Sonar-Runner
下砸并解压 Sonar-Runner 到本地安装路径,并配置 Jenkins sonar-runner 指向安装路径
本地机 安装 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.url=jdbc:mysql://”数据库 IP 地址”:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance (这里使用的是 Mysql 数据库)
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.login=admin
sonar.password=admin
代码质量管理
配置完所有工具以后,就可以进入 SonarQube 安装路径的 bin 文件,并找与服务器操作系统想对应的文件夹。 然后运行 sonar start ,来启动 SonarQube 服务器。
代码分析配置:
在 Jenkins 里的配置如下图。具体配置项可参考
本地运行 Sonar-Runner 则需要在待分析的项目根目录里创建一个名为 sonar-project.properties 的文件,然后添加 Analysis properties 的代码分析配置项。然后在命令行里进入到待分析项目根目录并执行 sonar-runner 。
这样代码既可以通过 Jenkins Job 来监控代码库,也可以让程序员自己先检查然后在集成入主代码库。
代码分析执行完后,根据 SonarQube 里 web 选项中所配置的信息,登陆查看分析结果。
默认地址为 localhost:9000 。 具体分析结果如下图:
当模块之间的联系越来越复杂,代码质量管理也面临越来越多的困难, SonarQube 代码质量管理系统给个推解决了很大的难题,这套解决方案帮助个推更好的进行产品迭代和优化,由此个推也能给广大开发者们提供更优质的推送技术服务!
3 回复 &| &直到
11:08:09 +08:00
& & 23:04:07 +08:00
好文,感谢楼主分享。
只是有一个疑问:不同的代码分支怎么在 Sonar 上做代码分析呢?举个例子,一个项目有 master,dev,feature,bug 四个分支,据我所知, sonar 会把这 4 个分支当作 4 个不同的项目来分析。有没有办法让 sonar 只分析我指定的分支呢?
& & 10:19:03 +08:00
@ 要想只 git 某个分支的代码监控。
首先要看自己是以什么方式运行的 sonar 代码分析。
在 jenkins 里:只需要在 Source code management 中指定 Branch to build 。 例
如 */dev
在本地以 sonar-runner : 就更简单了, 直接下载想要 branch 的代码,然后进入
代码根文件,创建 sonar-project.properties 文件,再执行代码分析。
& & 11:08:09 +08:00
@ 你说的没错,但是经常情况下需要同时构建一个 git 的多个分支,这么说的话,如果结合 jenkins ,那就需要为不同的分支创建不同的 Job ,然后在在 Source code management 中指定 Branch to build ,并且最终的结果是在 sonar 那边,这些不同的分支还是会被 sonar 认为是不同的项目,不是很智能。
& · & 880 人在线 & 最高记录 2466 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.5 · 68ms · UTC 00:04 · PVG 08:04 · LAX 17:04 · JFK 20:04? Do have faith in what you're doing.Tue Jul 28 07:58:01 CST 2015
SonarQube 5.1.2 发布,此版本主要是 bug 修复:
[SONAR-6351] - Escape rule message in issues report
[SONAR-6673] - Do not try to load DefaultNotificationManager in preview mode
[SONAR-6685] - Issues report contains invalid numbers depending on user locale
[SONAR-6715] - Preview analysis fails with &UnsupportedOperationException: Unable to find rule by query&
[SONAR-6718] - Issue tracking is not accurate when an action was done on issue from webapp改进
[SONAR-6700] - Server temp directory does not auto-cleanup
[SONAR-6706] - org.sonar.api.rules.ActiveRule.getRule().getTemplate() is always null on batch
下载:/Distribution/sonarqube/sonarqube-5.1.2.zip。
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
开源中国代码质量管理系统 -& http://sonar.oschina.net/
主要特点:
代码覆盖:通过单元测试,将会显示哪行代码被选中
改善编码规则
搜寻编码规则:按照名字,插件,激活级别和类别进行查询
项目搜寻:按照项目的名字进行查询
对比数据:比较同一张表中的任何测量的趋势
除非注明,
&文章均为原创,转载请以链接形式标明本文地址
本文地址:

我要回帖

更多关于 sonarqube 搭建 的文章

 

随机推荐