SonarQub代码分析平台部署

SonarQube构架

SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量。

SonarQube框架包含以下四个部分:

  • Project
  • SonarQube Scanner
  • SonarQube Server
  • SonarQube Database

Project

是需要被分析的源码,如我们的app工程源码,SonarQube支持多种语言和多种工程结构,Andriod是属于一种多模块的Java工程。

SonarQube Scanner

是用于执行代码分析的工具,在Project的根目录下执行,我们还需要在Project下进行SonarQube配置,其中指定了工程的相关信息,还指定了SonarQube Server的地址,SonarQube Scanner分析完毕之后,会将结果上报到该Server。

注:官方对Scanner的描述是“The SonarQube Scanner is recommended as the default launcher to analyze a project with SonarQube”,个人理解是可以用任何其它的工具替代,只要能对Source进行分析,并生成Server能构解析的数据格式上报给Server。

SonarQube Server

显示分析结果的Web Server,在SonarQube Scanner第一次将一个工程的分析结果上报给SonarQube
Server后,Server上会自动创建一个工程显示分析的结果,可以在Server上设置代码质量管理相关的各种配置,如设置代码检查规则(Rule)和质量门限(Quality
Gate)等。

SonarQube配置

SonarQube支持多种工程构建方式的配置,也对应需要用不同的Scanner来执行分析过程:

  • Ant
  • Maven
  • MSBuild(Microsoft Build Engine)
  • Gradle
  • Sonar Runner

一、安装配置Sonar

1、需要下载的安装包有下面两个

https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.6.zip   #sonar安装包

https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip  #sonar scanner安装包

2、修改数据库配置

#mysql -u root -p

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER ‘sonar‘ IDENTIFIED BY ‘Sonar123!‘;
mysql> GRANT ALL ON sonar.* TO ‘sonar‘@‘%‘ IDENTIFIED BY ‘Sonar123!‘;
mysql> GRANT ALL ON sonar.* TO ‘sonar‘@‘localhost‘ IDENTIFIED BY ‘Sonar123!‘;
mysql> FLUSH PRIVILEGES;

3、解压修改配置

# unzip sonarqube-5.6.6.zip
# mv sonarqube-5.6.6 sonarqube
# cd sonarqube
修改sonar.properties配置
# vim conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar123!
sonar.jdbc.url=jdbc:mysql://10.61.100.32:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

4、启动sonarqube

# /home/sonarqube/bin/linux-x86-64/sonar.sh start
# netstat -ntpl |grep 9000
tcp        0      0 0.0.0.0:9000                0.0.0.0:*                   LISTEN      2045/java

此时通过浏览器就可以打开sonarqube界面,下面开始通过配置sonar scanner来分析代码并在浏览器显示。

二、安装配置Sonar scanner

1、解压并修改配置

# unzip sonar-scanner-cli-3.0.3.778-linux.zip
# mv sonar-scanner-3.0.3.778-linux/ sonar-scanner
# cd sonar-scanner
# vim conf/sonar-scanner.properties
sonar.host.url=http://10.61.100.34:9000
sonar.sourceEncoding=UTF-8
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar123!
sonar.jdbc.url=jdbc:mysql://10.61.100.32:3306/sonar?useUnicode=true&characterEncoding=utf8
onar.login=admin
sonar.password=admin

2、拉取代码做测试用

# git clone http://yull:[email protected]/rd/canbaobao.git

3、分析测试

# cd /home/coding/canbaobao   #切换到git代码根目录
# /home/sonarqube/sonar-scanner/bin/sonar-scanner  #成功执行完毕会有下面提示
INFO: ANALYSIS SUCCESSFUL, you can browse http://10.61.100.34:9000/dashboard/index/my:project
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://10.61.100.34:9000/api/ce/task?id=AV0v7l4rYf3zHFnt0hqQ
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 55.900s
INFO: Final Memory: 50M/464M
INFO: ------------------------------------------------------------------------

4、此时即可在浏览器中查看代码分析情况

时间: 2024-10-06 00:54:42

SonarQub代码分析平台部署的相关文章

持续集成与自动化部署 - jenkins & sonar代码质量管理平台 部署和基础使用(五)

1 jenkins 安装参考链接 1.1 安装jenkins [[email protected] ~]# yum install -y java-1.8.0 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [[email protected] yum.repos.d]# rpm --import

Gitlab代码管理平台部署(CentOS6.7—gitlab7.2.12)

部署环境准备 Gitlab需要以下系统与软件环境: Ruby (MRI) 2.1 Git 1.7.10+ Redis 2.4+ MySQL 由于系统的git,ruby环境一般版本比较低,因此需考虑升级. 1.升级git. 删除原系统的git: #rpm -eperl-Git-1.7.1-3.el6_4.1.noarch git-1.7.1-3.el6_4.1.x86_64 源码包编译安装git: #tar -zxvf git-2.6.3.tar.gz #cd git-2.6.3 #autocon

ELK日志分析平台部署实录

[[email protected] ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch [[email protected] ~]# vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic

【玩转微信公众平台之八】 示例代码分析

0.下载安装Opencv,当前版本为249. 1.下载Python,当前OPencv版本为249,不过其支持的最新版本的Python为2.7,所以可以下载276版本. 2.下载numpy,开始我使用了1.6,没有通过,错误如图.下载了最新的1.8.1版本. 3.将Opencv安装目录下opencv\build\python\2.7\x86中的cv2.pyd复制到python安装目录Lib\site-packages下. 4.找到opencv源文件内的draw.py运行. [玩转微信公众平台之八]

微信公众平台开发(二) 微信公众平台示例代码分析

原文地址:http://www.cnblogs.com/mchina/archive/2013/06/07/3120592.html 一.摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下. 二.获取代码 微信官网:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip 三.分析代码 完整代码如下: <?php /** * wechat php test */ //define your

ELK服务搭建(开源实时日志分析ELK平台部署)(低版本—简单部署)

开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的

Centos7下ELK+Redis日志分析平台的集群环境部署记录

之前的文档介绍了ELK的架构基础知识,下面简单记录下ELK结合Redis搭建日志分析平台的集群环境部署过程,大致的架构如下: + Elasticsearch是一个分布式搜索分析引擎,稳定.可水平扩展.易于管理是它的主要设计初衷 + Logstash是一个灵活的数据收集.加工和传输的管道软件 + Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的收集加工,存储分析和可视转化整合在一起就形成了ELK. 基本流程:1)Logstash-Shipper获取日

日志分析ELK平台部署

工作原理如下如所示: 部署流程: 1.安装logstash的JDK环境: # tar zvxf jdk-8u73-linux-x64.tar.gz # mv jdk-8u73-linux-x64 /usr/local/java # vim /etc/profile export JAVA_HOME=/usr/local/java CLASSPATH=/usr/local/java/lib/dt.jar/usr/local/java/lib/tools.jar PATH=/usr/local/ja

安装sonarQube代码质量管理平台分析PHP代码

只是说说遇到的坑吧, 第一点:不同的PHP版本,需要安装不同的sonar,最新的sonar版本,只适用于高版本的php: 第二点,分析php代码的扩展同样如此,需要用到对应版本的php代码分析扩展: 第三点,在增加php项目,开始分析之后,sonar需要操作数据库,并分析代码,可能会大量消耗cpu和读取数据库,造成机器负载飙升,同时,分析代码可能需要很长的时间,在此期间重启sonar,停止sonar,可能会导致开启失败,内存溢出报错,这个要多等一段时间,根据机器性能不等,我的是在半个 小时左右.