持续集成代码管理SonarQube

一,sonar介绍

sonarqube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。

二,sonarqube特性

持续检查:

项目整体的健康程度
    项目的主页画会给出,项目整体的bugs,VULANERABILITIES,code smells
专注于漏洞
    water-leak-paradigm可以有效的管理代码质量:新特性,增加的,改变的(water-leak-paradigm是sonarqube研究的一种代码管理方法)。
    在项目监测报告中,需要密切关注:NEW BUGS,New Vulnerabilities
实施质量阀值
    在团队项目中,可以设置质量阀值(quality cate),用于监管质量
分支分析
    确保干净的代码才会被合并到主分支中

集成DEVOPS

集中质量

七个维度检测代码质量

1.复杂度分布(complexity):代码复杂度过高将难以理解
2.重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
3.单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
4.代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
5.注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
6.潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
7.结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度
  • 用户本地使用IDE的插件进行代码分析
  • 用户上传到源代码版本控制服务器
  • 持续集成,使用Sonar Scanner进行扫描
  • 将扫描结果上传到SonarQube服务器
  • SonarQube server将结果写入db
  • 用户通过web ui查看扫描结果
  • SonarQube导出结果到其他需要的服务

1.安装JDK

1.1JDK下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

è¿éåå¾çæè¿°

1.2.点击上图中箭头所指的地方,会出现下面的这个界面,此时你需要根据你的电脑系统来进行对应的版本进行选择,在选择版本和下载之前你需要首先接收协议,具体界面如下图所示:

1.3下载解压到规定路径并设置环境变量

#vim /etc/profile
打开后,在文档最下方加上一下环境变量配置代码:
export JAVA_HOME=/opt/jdk1.8.0_181
export JAVA_BIN=/opt/jdk1.8.0_181/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
:wq
配置立即生效:source /etc/profile

检查是否安装成功。#java -version  看到jvm版本及信息,即安装成功。

2.sonarqube安装

2.1目前sonarqube最新版本是7.7,需要注意最新版的 Sonar 需要至少JDK 1.8及以上版本。质量门在拉请求,注入缺陷规则的PHP和BitBucket服务器支持。官网下载地址(https://www.sonarqube.org/downloads/)重点说明:官网下载需要翻墙。

2.2 解压

unzip sonarqube-7.7.zip

mv sonarqube-7.7 /data/

 3.准备数据库

因为sonar会用到数据库,所以我们要事先准备好数据库,它支持多种数据库,我们这里选择的是mysql,注意mysql的版本最低要5.6,并且只支持InnoDB引擎。我们选择已经安装好的数据库,直接创建,所以安装过程略过:

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

4.配置sonar

4.1配置数据库连接

编辑/data/sonarqube-7.7/conf/sonar.properties,修改内容如下:

# 数据库连接
sonar.jdbc.username=sonar           
sonar.jdbc.password=sonar@123    
sonar.jdbc.url=jdbc:mysql://192.168.5.134:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

# Web 端口
sonar.web.host=0.0.0.0
sonar.web.port=9000

4.2 创建用户sonar

因为程序不允许我们使用root执行,所以我们需要注册一个普通用户。

useradd sonar

chown -R sonar.sonar /data/sonarqube-7.7 

4.3启动sonar

[root@monitor ~]# su - sonar

[sonar@monitor ~]$ /data/sonarqube-7.7/bin/linux-x86-64/sonar.sh start
Starting SonarQube...
Started SonarQube.

/data/sonarqube-7.7/bin/linux-x86-64/sonar.sh start

console | start | stop | restart | status | dump
日志:
 tail -f /data/sonarqube-7.7/logs/sonar.log

4.4配置sonarqube开机启动

添加sonar环境变量

修改 ~/.bash_profile

1、创建服务

vi /etc/init.d/sonar

内容如下,其中标红内容为服务绝对路径:

#!/bin/sh  

#  

# rc file for SonarQube  

#  

# chkconfig: 345 96 10  

# description:SonarQube system (www.sonarsource.org)  

#  

### BEGIN INIT INFO  

# Provides: sonar  

# Required-Start:$network  

# Required-Stop:$network  

# Default-Start: 3 4 5  

# Default-Stop: 0 1 2 6  

# Short-Description:SonarQube system (www.sonarsource.org)  

# Description:SonarQube system (www.sonarsource.org)  

### END INIT INFO  

/data/sonarqube-7.7/bin/linux-x86-64/sonar.sh $* 

 

2、增加执行权限

chmod +x /etc/init.d/sonar

3、添加服务

chkconfig --add sonar

4、配置服务启动时依赖的jdk

vi /opt/sonarqube/conf/wrapper.conf

修改wrapper.java.command=java,配置为jdk中java命令的绝对路径

wrapper.java.command=/opt/jdk1.7.0_07/bin/java

5、启动服务

service sonar start

4.5检查是否启动成功:

5.登录sonar

Web登录:IP:9000   默认登录账户admin  admin

5.1安装中文插件。

æç»­éæä¹ä»£ç è´¨é管ç Sonar(å­)

重启才会生效:

æç»­éæä¹ä»£ç è´¨é管ç Sonar(å­)

6.安装sonar扫描器:

6.1Sonar通过SonarQube Scanner(扫描器)来对代码进行分析。

下载官网地址(https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

unzip sonar-scanner-3.3.0.1492-linux

mv /home/sonar/sonar-scanner-3.3.0.1492-linux /data/sonar-scanner-3.3.0
chown -R sonar.sonar /data/sonar-scanner-3.3.0

6.2扫描器和sonar关联起来

编辑文件/data/sonar-scanner-3.3.0/conf/sonar-scanner.properties,修改为如下内容:

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar@123
sonar.jdbc.url=jdbc:mysql://192.168.5.134:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值