SonarQube与Jenkins结合提高代码质量

首先,为什么需要SonarQube?

1、WriteClean Code

1)全局健康报告 

2)关注新增的问题 

3)强制QualityGate

4)Issue详情及建议…

详情参考:https://www.sonarqube.org/features/clean-code/

2、DevOps Integration

1)支持多种BuildSystem集成: Maven,Gradle,Ant…

2)支持多种CIEngines: Bamboo,Jenkins…

3)成功、失败通知…

详情参考:https://www.sonarqube.org/features/integration/

3、CentralizeQuality

1)所有项目inone place

2)统一的Ruleset, QualityGate…

详情参考:https://www.sonarqube.org/features/centralization/

SonarCube安装

1、下载地址:https://www.sonarqube.org/downloads/

2、 解压,配置(主要是数据库的配置)

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

3、 启动相应平台的脚本

./sonar start

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

4、验证(首次启动PROJECTS下面是空白的)

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarCubeScanner

用于代码分析,有多种方式:

SonarQube Scanner :命令行方式

SonarQubeScanner for Maven :与Maven集成

SonarQube Scannerfor Jenkins:与Jenkins集成

….

详情参考:https://docs.sonarqube.org/display/SCAN/Analyzing+Source+Code

SonarCubeScanner 命令行方式

命令行模式具体参考:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

SonarCubeScanner Maven方式

1、Initial Setup

     修改setting.xml文件,指定SonarCube Server的URL,其位于$MAVEN_HOME/conf 或 ~/.m2Maven

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

2、在项目目录下运行以下命令执行分析

    mvn clean verify sonar:sonar

详情参考:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

3、查看报告

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

SonarCubeScanner Jenkins集成

1. 安装插件 (SonarQube Scanner for Jenkins + Quality Gate Plugin)

  Jenkins: 系统管理 > 管理插件

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

2、配置

Jenkins:系统管理 >系统设置

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

3、项目配置(在原配置上需要增加的地方)

1)在构建环境里勾选“PrepareSonarQubeScanner environment”

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

2)在构建里增加代码分析步骤

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

3)在构建后操作里增加Quality Gate步骤。这个很关键,用于当代码质量不通过时,不执行部署。ProjectKey可以在SonarQube上找到,执行一次Maven方式的分析后SonarQube就会有。

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

4. 执行构建

如果代码质量通过,项目就可以部署,结果如下。

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

如果代码质量不通过,可以看到后面的部署没有进行,本次集成状态为失败。

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

5、 查看失败原因

点击红色”ERROR”可以前往SonarQube查看报告。

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

点击”NewBugs”下面的数字查看Bug详情。

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

查看Bug概述

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

查看Bug详情

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

点击“…”查看为什么这是个Bug以及如何fix。

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

6、Bug处理

管理员可以把Bug分配给开发成员;也可确认这不是Bug后将其设为”won’tfix”,这样下次构建时这个Bug就不会出现在报告里,也不会再对QualityGate产生影响。还可以进行其他的一些处理,详情如下。

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

若Bug被分配给某个开发成员,他可以在他的账号下看到。(不知道这个能不能和JIRA集成:))

SonarQube与Jenkins结合提高代码质量

SonarQube与Jenkins结合提高代码质量

SonarCube还有很多其他功能,例如Quality Gate状态变化邮件通知,自定义Rule…这些有需要的话可以进一步深挖下。

SonarLint

使用Sonarlint Eclipse插件,对新增或修改的代码进行即时检查,降低Issue进入到Jenkins集成的时候才被发现的几率

SonarQube与Jenkins结合提高代码质量SonarQube与Jenkins结合提高代码质量

Sonarlint Eclipse插件下载和安装

https://marketplace.eclipse.org/content/sonarlint

SonarQube与Jenkins结合提高代码质量

上一篇:linux(九)之网络基础


下一篇:DSAPI多功能组件编程应用-网络相关(上)