1.目标

  使用SonarQube进行代码质量检查,访问SonarQube Server,可以查看代码质量检查报告。

2.环境说明

  jdk:sun JDK1.8.0_20 64bit

  MySQL:5.7.13

  sonarqube-5.6.zip(链接: https://pan.baidu.com/s/1miRtGog 密码: k3qn)

  sonar-scanner-2.6.1.zip(链接: https://pan.baidu.com/s/1nvuNFw1 密码: 9gac)

  Jenkins sonar插件——sonar-2.6.hpi(链接: https://pan.baidu.com/s/1kVulJmB 密码: yyqq)

  SonarQube汉化插件——sonar-l10n-zh-plugin-1.11.jar(链接: https://pan.baidu.com/s/1hstBTjA 密码: pb4m)

3.前置工作

3.1 jdk8+的安装

  略。

3.2 MySQL的安装及建立sonar专用database

  安装过程略。

使用如下语句建立database:

create database sonar default charset=utf8;

3.3 配置sonarqube-server

  进入sonarqube-server安装目录  >> conf目录,编辑sonar.properties文件:

  Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

3.4 配置sonarqube-runner

  进入sonarqube-runner安装目录  >> conf目录,编辑sonar-scanner.properties文件:

  Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

3.5 验证SonarQube是否安装成功

  启动sonarqube-server:

  Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

  访问http://localhost:9000

3.6 验证sonar-runner【可选】

  (1)设置SONAR_RUNNER_HOME环境变量,值为sonar-runner安装位置

  (2)设置path环境变量,增加 ;%SONAR_RUNNER_HOME%\bin

  (3)新建sonar-project.properties文件,增加以下内容:

    Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

  (4)进入源码位置,在控制台中执行sonar runner命令,看能够构建成功。

3.7 安装jenkins的sonar插件

  方式一:通过上传sonar-*.hpi文件的方式安装,在没网络的情况下可能还要手动处理依赖插件。

  方式二:在jenkins的『插件管理』中搜索sonar插件安装。

4.Jenkins配置

4.1 配置jdk

  进入『系统管理』 >> 『Global Tool Configurationa』,配置如下:

  Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

4.2 配置sonar-server

  进入『系统管理』 >> 『系统设置』,配置如下:

Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

4.3 配置sonar-runner

  进入『系统管理』 >> 『Global Tool Configurationa』,配置如下:

  Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

4.4 新建并配置job【自由风格】

  (1)配置sonar-project.properties,详见本文3.6 步骤(3)。最终效果如下:

   Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

  (2)配置job 

Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

5.构建结果

  控制台输出如下:

Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

返回作业,能看到sonarqube检查结果的链接图标:Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

  点击接图标,可以看到该次构建结果:

Jenkins系列——使用SonarQube进行代码质量检查-LMLPHP

6.总结

①SonarQube 需要JDK 和 数据库 的支持。在选择前需要阅读官方文档选择合适的版本。

②SonarQube 是一个独立的软件,不是一定要和jenkins 扯上联系,因此完全可以先独立验证SonarQube的可用性,再利用sonar插件和jenkins关联。

③SonarQube 需要对sonar-server 做配置才能进一步使用。扫描项目时需要提供项目的配置文件。

05-11 13:37