SonarQub代码分析平台部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、此时即可在浏览器中查看代码分析情况

技术分享

本文出自 “亮公子” 博客,请务必保留此出处http://iyull.blog.51cto.com/4664834/1946326

以上是关于SonarQub代码分析平台部署的主要内容,如果未能解决你的问题,请参考以下文章

自动代码质量分析(GitLab+JenKins+SonarQube)

导致资产预编译在heroku部署上失败的代码片段

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

对一个拉取请求进行多次 SonarQube 分析

自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube

将项目部署到github的方法