SonarQube代码质量管理平台安装与使用

来源:互联网 发布:优盘 启动 windows pe 编辑:程序博客网 时间:2024/06/10 06:21


一、       Sonar介绍

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

二、       sonar部署

预置条件

1.      已安装Java环境,最新版本的sonar5.6需要jdk1.8及以上环境

2.      已安装有MySQL数据库,需mysql5.6 或者更高版本

部署

1.      Jdk安装

[root@bogon~]# tar -zxvf jdk-8u131-linux-x64.tar.gz

配置环境变量

[root@bogon~]# vim /etc/profile

exportJAVA_HOME=/usr/local/src/jdk1.8.0_131

exportJAVA_BIN=$JAVA_HOME/bin

exportPATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@bogon~]# source /etc/profile

2.      Sonar安装

[root@bogon~]# cd /usr/local/src

软件包我们通过wget或者下载,rz上传到服务器

#软件包下载:https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip

[root@bogonsrc]# unzip sonarqube-5.6.zip

[root@bogon src]# mv sonarqube-5.6 /usr/local/

[root@bogonsrc]# ln -s /usr/local/sonarqube-5.6/ /usr/local/sonarquber

 

3.      MySQL安装

# wgethttp://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# rpm-ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server

[root@bogon~]# systemctl start mysqld.service

[root@bogon~]# systemctl enable mysqld.service

[root@bogon~]# mysql_secure_installation

[root@bogon ~]# mysql -uroot -p123456

数据库配置

mysql>CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

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

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

mysql> FLUSH PRIVILEGES;

 

4.      sonar配置

[root@bogon~]#  cd /usr/local/sonarqube/conf/

[root@bogonconf]# ls

sonar.properties  wrapper.conf

编写配置文件,修改数据库配置

 

[root@bogonconf]# vim sonar.properties

#我们只需要去配置文件里面修改数据库的认证即可

sonar.jdbc.username=sonar            #数据库用户

sonar.jdbc.password=sonar@pw     #数据库密码

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&character   Encoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

 

5.      启动Sonar

你可以在Sonar的配置文件来配置Sonar Web监听的IP地址和端口,默认是9000端口。

[root@bogonconf]# vim sonar.properties

#sonar.web.host=0.0.0.0

#sonar.web.port=9000

启动命令如下:

[root@bogon~]# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start

StartingSonarQube...

Started SonarQube.

检查是否有相应的端口

[root@bogon ~]# netstat –lntup

如果有什么问题可以看一下日志[/usr/local/sonarqube/logs/sonar.log]

Web登陆:IP:9000

三、       sonar使用

sonar跟jenkins类似,也是以插件为主

sonar安装插件有2种方式:第一种将插件下载完存放在sonar的插件目录,第二种使用web界面来使用安装

存放插件路径[/usr/local/sonarqube/extensions/plugins/]

安装中文插件

登陆:用户名:admin 密码:admin

其他插件也可如此安装,如PHP语言插件

Sonar 插件--->语言插件 (分析什么语言,你就需要安装什么语言的插件)

1.      Sonar通过SonarQubeScanner(扫描器)来对代码进行分析

官方文档:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

1)        下载扫描器插件

[root@bogon ~]# wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip

[root@bogon ~]# unzip sonar-scanner-2.8.zip

[root@bogon ~]# mv sonar-scanner-2.8 /usr/local/

[root@bogon ~]# ln -s /usr/local/sonar-scanner-2.8//usr/local/sonar-scanner

 

2)        我们要将扫描器和sonar关联起来

[root@bogon~]# cd /usr/local/sonar-scanner

[root@bogonsonar-scanner]# ls

bin  conf lib

[root@bogonsonar-scanner]# cd conf/

[root@bogonconf]# ls

sonar-scanner.properties

[root@bogonconf]# vim sonar-scanner.properties

sonar.host.url=http://localhost:9000        #sonar地址

sonar.sourceEncoding=UTF-8                  #字符集

sonar.jdbc.username=sonar                    #数据库账号

sonar.jdbc.password=sonar@pw             #数据库密码

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8    #数据库连接地址

#打开注释即可

 

3)        代码分析

我们现在需要找一个代码进行分析。

sonar插件提供了一个代码的库

github:https://github.com/SonarSource/sonar-examples

我们下载软件包:https://github.com/SonarSource/sonar-examples/archive/master.zip

解压

[root@bogon src]# unzip sonar-scanning-examples-master.zip

[root@bogon src]# cdsonar-scanning-examples-master/sonarqube-scanner

[root@bogonsonarqube-scanner]# ls

copybooks coverage-report sonar-project.properties  src

配置文件解释:

如果想扫描项目,就需要在代码路径下放一个配置文件*.properties,内容如下:

[root@bogonsonarqube-scanner]# more sonar-project.properties

sonar.projectKey=org.sonarqube:sonarqube-scanner                      #Key

sonar.projectName=Example ofSonarQube Scanner Usage           #这里的名称会显示在一会的web界面

sonar.projectVersion=1.0                  #版本,这里的版本一会也会显示在web界面上

sonar.sources=src,copybooks          #软件包存放路径

sonar.sourceEncoding=UTF-8           #字体

## CobolSpecific Properties

#comma-separated paths to directories with copybooks

sonar.cobol.copy.directories=copybooks

#comma-separated list of suffixes

sonar.cobol.file.suffixes=cbl,cpy

sonar.cobol.copy.suffixes=cpy

## FlexSpecific Properties

#retrieve code coverage data from the Cobertura report

sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml

# PL/ISpecific Properties

sonar.pli.marginLeft=2

sonar.pli.marginRight=0

配置后在该项目下运行sonar-scanner扫描

[root@bogon sonarqube-scanner]# /usr/local/sonar-scanner/bin/sonar-scanner

扫描之后我们在web界面上就可以看到代码的扫描结果

这里的名字,版本 都是在sonar-project.properties文件中定义的

点击项目名称查看详细信息

 

2.      Sonar通过maven来对代码进行扫描分析

安装maven

[root@bogon src]# tar -zxvf apache-maven-3.5.0-bin.tar.gz

配置maven环境变量

[root@bogon local]# vim /etc/profile

exportMAVEN_HOME=/usr/local/src/apache-maven-3.5.0

export PATH=${MAVEN_HOME}/bin:${PATH}

[root@bogon local]# source /etc/profile

检查maven是否安装成功

[root@bogonlocal]# mvn -v

Apache Maven 3.5.0(ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)

Mavenhome: /usr/local/src/apache-maven-3.5.0

Javaversion: 1.8.0_141, vendor: Oracle Corporation

Javahome: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre

Defaultlocale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-327.el7.x86_64",arch: "amd64", family: "unix"

进入项目所在目录进行扫描

[root@bogon ~]# cd/usr/local/src/sonar-scanning-examples-master/sonarqube-scanner-maven/

[root@bogon sonarqube-scanner-maven]# mvn clean install sonar:sonar

注意所在目录必须有pom.xml配置文件