1.目标

之前已经写过一篇关于Jenkins和SonarQube的一篇博客《jenkins集成sonar》,本文在参考前文的基础上,做了详细的补充。

  使用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)

①Jenkins系列文档自本篇起JDK版本采用sun jdk8+ 。

②SonarQube依赖条件详细参考SonarQube官方文档

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文件:

  

3.4 配置sonarqube-runner

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

  

笔者后来在安装当前最新版本(6.3.1)时,发现sonar-runner还必须加如下配置:

sonar.login=admin

sonar.password=admin

注:admin/admin是sonar的管理员初始登录账号密码。

最终sonar-runner的配置如下:

3.5 验证SonarQube是否安装成功

  启动sonarqube-server:

  

  访问http://localhost:9000

①在windows下启动失败请尝试用『以管理员身份运行』。

②如果SonarQube用的比较多,可以设置为服务。如此便不用每次都启动。

③在Jenkins中调用sonar,前提仍然是sonarqube-server已启动。

3.6 验证sonar-runner【可选】

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

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

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

    

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

3.7 安装jenkins的sonar插件

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

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

4.Jenkins配置

4.1 配置jdk

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

  

从此篇文章起,jdk版本变成了1.8+。如果jdk一开始就是1.8+,此步配置应省略。

4.2 配置sonar-server

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

4.3 配置sonar-runner

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

  

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

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

   

  (2)配置job 

这里源码使用了码云的zheng项目,直接放到了该作业工作区的src目录之下。

5.构建结果

  控制台输出如下:

返回作业,能看到sonarqube检查结果的链接图标:

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

SonarQube汉化请参考《SonarQube中文插件安装》。

6.总结

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

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

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

Jenkins系列——使用SonarQube进行代码质量检查的更多相关文章

  1. 在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查

    不乱于心,不困于情,不畏将来,不念过往,如此安好 --<不宠无惊过一生>丰子恺 概述 关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章: 在 k8s 中 ...

  2. Jenkins系列——使用checkstyle进行代码规范检查【升级版】

    1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...

  3. jenkins集成sonarQube实现代码质量检查

    1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...

  4. Jenkins系列——使用checkstyle进行代码规范检查

    1.目标 通过jenkins使用checkstyle对代码进行规范检查并生成html报告. 构建采用shell. 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) ap ...

  5. Jenkins+SonarQube实现C#代码质量检查

    环境准备 SonarQube 项目创建 jenkins Windows构建节点配置 安装与SonarQube服务端相同版本jdk 安装sonar-scanner 并配置环境变量 安装Visual St ...

  6. git jenkins SonarQube手动代码质检

    SonarQube代码质检:1.提交代码-->gitlab-->jenkins抓取-->sonarqube质量检测-->maven编译-->shell-->web集 ...

  7. 持续集成工具之jenkins+sonarqube做代码扫描

    上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...

  8. 持续集成高级篇之Jenkins Pipeline 集成sonarqube

    系列目录 前面章节中我们讲到了Sonarqube的使用,其实Sonarqube获取msbuild结果主要是执行三个命令,开始标记,执行msbuild,结束标记,这些都是命令,是非常容易集成到我们ci流 ...

  9. jenkins系列(11)-自动打tag升级篇

    很久以前,小怪分享过一篇jenkins自动打tag的文章(jenkins系列1--自动打tag),经过在项目实战和改进,我们升级了方案,现在和大家分享.,希望大家在工作中能够用起来. 使用步骤: 1. ...

随机推荐

  1. AAAAAA

    有可能被立案调查.暂停上市.退市风险警示*ST.特别处理ST的公司:银鸽投资(SH:600069).天山生物(SZ:300313).金贵银业(SZ:002716).美盛文化(SZ:002699).未名 ...

  2. js的prototype的详解(1)

    一.什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的.我们使用prototype属性提供对象的类的一组基本功 ...

  3. IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除

    1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/ ...

  4. win10彻底关闭自动更新

    第1步 https://jingyan.baidu.com/article/9faa7231e7b78b473c28cbb6.html 第2步 http://www.360doc.com/conten ...

  5. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import time start = time.time() ...

  6. TemplateText TT 在Runtime发生 Could not load type ...... because the format is invalid

    Severity Code Description Project File Line Suppression State Error Running transformation: System.T ...

  7. FISCO BCOS WorkShop | 区块链开发特训营,开课啦!

    FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行. ...

  8. 跟踪记录ABAP对外部系统的RFC通信

    对SAP系统而言,RFC最常见的系统间通信方式,SAP与SAP系统及SAP与非SAP系统之间的连接都可以使用它.它的使用便利,功能强大,在各种接口技术中,往往是最受(ABAP开发者)青睐的选择. 查询 ...

  9. C 语言实例 - 判断正数/负数

    C 语言实例 - 判断正数/负数 用户输入一个数字,判断该数字是正数还是负数或是零. 实例 #include <stdio.h> int main() { double number; p ...

  10. transition动画最简使用方式

    HTML <a href="#" title="">test</a> CSS a {display:block; width:200px ...