Jenkins SonarQube代码质量管理

  • A+
所属分类:Jenkins

SonarQub e 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 J ava、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:

  • 检查代码是否遵循编程标准:如命名规范,编写的规范等。
  • 检查设计存在的潜在缺陷:SonarQub e 通 过插 件 F indbugs、Checkstyl e 等 工具检测代码存在的缺陷。
  • 检测代码的重复代码量:SonarQub e 可 以展示项目中存在大量复制粘贴的代码。
  • 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
  • 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况

SonarQube 平 台是 由 4 个 部分组成:

  • SonarQube Server
  • SonarQube Database
  • SonarQube Plugins
  • SonarQube Scanner

一.安装要求

Centos 7

JDK: 1.8

RAM: 2G

MYSQL: 5.6

SonarQube:5.6.6

二.准备环境

1.创建Mysql数据库

mysql>create database sonar character set utf8 collate utf8_general_ci;

mysql>create user 'sonar' identified by 'sonar@123';

mysql>grant all on sonar.* to 'sonar'@'%' identified by 'sonar@123';

mysql>grant all on sonar.* to 'sonar'@'localhost' identified by 'sonar@123';

mysql>flush privileges;

三.安装Sonarqube

1.下载

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.6.zip

2.解压

unzip sonarqube-5.6.6.zip

mv sonarqube-5.6.6 /opt/sonarqube

3.配置环境变量

vim /etc/profile
#sonar
export SONAR_HOME=/opt/sonarqube
export PATH=${SONAR_HOME}/bin:${PATH}

使配置生效

source /etc/profile

4.修改配置文件

vim /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar@123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
#Option properties 此配置项配置文件没有,需粘贴到配置文件中 
sonar.jdbc.driverClassName:com.mysql.jdbc.Driver

5.配置DB驱动(Mysql此步骤省略)

sonar默认支持h2、mssql、mysql、postgresql数据库,如使用oracle jdbc需手动把驱动复制到/opt/sonarqube/extensions/jdbc-driver/oracle/中

6.创建sonar软连接

ln -s /opt/sonarqube/bin/linux-x86-64/sonar.sh /opt/sonarqube/bin/sonar

7.启动

/opt/sonarqube/bin/linux-x86-64/sonar.sh start或sonar start

8.添加防火墙策略

firewall-cmd --permanent --zone=public --add-port=9000/tcp

firewall-cmd --reload

9.安装中文插件,默认登录用户名和密码都是admin

Jenkins SonarQube代码质量管理

安装完插件后重启一下sonar

sonar restart

重启完后登录界面已经变成中文的了。

10.安装语言插件(分析什么语言,你就需要安装什么语言的插件)

默认自带语言插件有C#,Java,JS,安装Python

Jenkins SonarQube代码质量管理

四.SonarQube Scanner

1.下载

wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip

2.解压

unzip sonar-scanner-cli-3.0.3.778-linux.zip

mv sonar-scanner-3.0.3.778-linux/ /opt/sonar-scanner

3.配置环境变量

vim /etc/profile
#sonar-scanner
export SONAR_SCANNER_HOME=/opt/sonar-scanner
export PATH=${SONAR_SCANNER_HOME}/bin:${PATH}

更新配置

source /etc/profile

4.修改配置文件,关联sonar

vim /opt/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8

5.测试是否配置成功

sonar-scanner -h

四.与Jenkins集成

1.安装插件

Jenkins SonarQube代码质量管理

2.生成连接token

Jenkins SonarQube代码质量管理      3.配置Jenkins SonarQube

Jenkins SonarQube代码质量管理

4.Jenkis 配置 SonarQube Scanner

Jenkins SonarQube代码质量管理

5.现有项目添加SonarQube  Scanner

因项目配置了版本回滚,所以我们在生成war包后在Post Steps项添加检测源码

Execute SonarQube Scanner
Task to run     scan          #分析代码
#自己定义的jdk
JDK         jdk 
Path to project properties  #可指定sonar-project.properties,如不指定使用项目默认配置
Analysis properties     #可配置参数传给Sonar,优先级高于sonar-project.properties 
sonar.projectKey=tsp-war  #可填写项目名称
sonar.projectName=tsp-war
sonar.projectVersion=1.0 
sonar.language=java       #分析语言
sonar.java.binaries=$WORKSPACE/target/classes/com   
sonar.sources=$WORKSPACE/src   #源码路径

Additional arguments   -X  #进入Debug 模式

Jenkins SonarQube代码质量管理
6.构建并查看Sonar

Jenkins SonarQube代码质量管理
注:SonarQube Scanner进行代码分析,第一种是使用构建后步骤,第二种是在构建的过程中增加 SonarQube Scanner 的步骤。此处使用的是构建过程中

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: