Jenkins系列——使用SonarQube进行代码质量检查
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:

①在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进行代码质量检查的更多相关文章
- 在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查
不乱于心,不困于情,不畏将来,不念过往,如此安好 --<不宠无惊过一生>丰子恺 概述 关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章: 在 k8s 中 ...
- Jenkins系列——使用checkstyle进行代码规范检查【升级版】
1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...
- jenkins集成sonarQube实现代码质量检查
1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...
- Jenkins系列——使用checkstyle进行代码规范检查
1.目标 通过jenkins使用checkstyle对代码进行规范检查并生成html报告. 构建采用shell. 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) ap ...
- Jenkins+SonarQube实现C#代码质量检查
环境准备 SonarQube 项目创建 jenkins Windows构建节点配置 安装与SonarQube服务端相同版本jdk 安装sonar-scanner 并配置环境变量 安装Visual St ...
- git jenkins SonarQube手动代码质检
SonarQube代码质检:1.提交代码-->gitlab-->jenkins抓取-->sonarqube质量检测-->maven编译-->shell-->web集 ...
- 持续集成工具之jenkins+sonarqube做代码扫描
上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...
- 持续集成高级篇之Jenkins Pipeline 集成sonarqube
系列目录 前面章节中我们讲到了Sonarqube的使用,其实Sonarqube获取msbuild结果主要是执行三个命令,开始标记,执行msbuild,结束标记,这些都是命令,是非常容易集成到我们ci流 ...
- jenkins系列(11)-自动打tag升级篇
很久以前,小怪分享过一篇jenkins自动打tag的文章(jenkins系列1--自动打tag),经过在项目实战和改进,我们升级了方案,现在和大家分享.,希望大家在工作中能够用起来. 使用步骤: 1. ...
随机推荐
- 三层架构与MVC比较:
三层架构与MVC比较: 1.两者不是同一概念 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目. 那么架构跟设计模式 ...
- phpstrom添加monokai-sublime主题
phpstrom默认的主题看起来不是特别舒服,sublime的主题却相当养眼,搜索之后,大为惊喜. 下载地址:https://github.com/sumiaowen/jetbrains-monoka ...
- 【机器学习】决策树C4.5、ID3
一.算法流程 step1:计算信息熵 step2: 划分数据集 step3: 创建决策树 step4: 利用决策树分类 二.信息熵Entropy.信息增益Gain 重点:选择一个属性进行分支.注意信息 ...
- 快速部署Kubernetes集群管理
这篇文章介绍了如何快速部署一套Kubernetes集群,下面就快速开始吧! 准备工作 //关闭防火墙 systemctl stop firewalld.service systemctl disabl ...
- Centos7 安装vim8
一.卸载旧版本的vim yum -y remove vim* 二.安装终端字符处理库ncurses yum -y install ncurses-devel 三.下载Vim8 wget https:/ ...
- MVC 中dapper的日志功能+程序报错修改
由于之前的项目说最好要有日志功能,正好之前看过几篇这方面的文章就弄了点东西. 这是EF日志受启发很大的一个原文: http://www.cnblogs.com/GuZhenYin/p/5556732. ...
- SQL Server 截取两个固定字符之间的字符串(案例)
网上的问题: 参考这篇<函数PARSENAME使用和截取字符串>https://www.cnblogs.com/insus/p/10958452.html 的方法: )='||MO21|T ...
- debian 7上源码编译MongoDB 3.4版本
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 要想精通一个数据库,除了知道该数据库的功能特性.使用方法等,还需要能够看懂数据库源码,能够使用gdb工具对其 ...
- CF360E Levko and Game【贪心+dijsktra】
先把所有边可动设为r[i]又这些边不是l就是r(如果想一个方向改变能更优的话就尽量多的改变),每次跑dijsktra,对于可动边(x,y),如果dis1[x]<=dis2[x],那么就把这条边改 ...
- uoj#335. 【清华集训2017】生成树计数(prufer序列+生成函数+多项式)
传送门 好神仙的题目--又一次有了做一题学一堆的美好体验 据说本题有第二类斯特林数+分治\(FFT\)的做法,然而咱实在看不懂写的是啥,题解贴这里,有兴趣的可以自己去瞅瞅,看懂了记得回来跟咱讲讲 前置 ...
