DEVOPS技术实践_11:Jenkins集成Sonar
前言
前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍
一 sonar的简单介绍
持续检查避免了低质量的代码,比如SonarQube工具就能够帮助我们完成此项。每次代码提交后,在代码上就会执行代码分析。
分析是基于代码分析工具中定义的一些规则,如果代码通过了错误阀值,那么它会允许到生命周期的下一步,如果超过了设定的阀值,那么直接返回错误。
SonarQube是代码质量管理工具,允许团队去管理,追踪和改善他们的源代码质量,它是包含了规则,告警和阀值的一个基于WEB的应用。它包含了七种类型的代码质量参数,分别是加构和设计,重复,单元测试,复杂度,潜在bug,编码规则和评论。
SoanrQube是一个开源的工具,支持几乎所有的流行语言,并且能够和CI工具有效的集成执行持续检查。
目前已经有的工具
Jenkins:192.168.132.131
Gitlab:192.168.132.132
Sonar:192.168.132.133
Artifactory:192.168.132.134
二 配置sonar
2.1 生成token
生成一个token,这个token是sonar和Jenkins连接的钥匙

生成token

token:278c0c5ddadca63754f0fa9ce50ba99c20214fb5

2.2 在SonarQube中创建一个项目
(1) 点击Administrator | Projects (tab) | Management
(2) 点击Create Project按钮, 并填写信息如下。

创建成功后应该显示信息如下。

2.3 针对SonarQube安装build breaker插件
该插件允许CI system(Jenkins)在质量门的条件不能够满足的情况下,强制Jenkins构建失败。安装插件,执行以下步骤。
安装插件之前,先去查看一下兼容性列表,可以查看以下网址。兼容性列表
下载构建代理插件,下载地址
切换到/tmp目录和下载构建代理插件,使用以下命令。
[root@node3 ~]# cd /tmp/
[root@node3 tmp]# wget https://github.com/jbocc/sonar-build-breaker/releases/download/2.2/sonar-build-breaker-plugin-2.2.jar
移动.jar文件到/home/sonar/sonarqube/extensions/plugins/目录下
cp sonar-build-breaker-plugin-2.2.jar /home/sonar/sonarqube/extensions/plugins/
[sonar@node3 ~]$ ./sonarqube/bin/linux-x86-64/sonar.sh restart

重新启动完成后,应该看到界面有Build Breaker选项了。

2.3 创建质量门
针对想要breaker plugin起作用,去工作,那么需要创建quality gate, quality gate只是一些条件。当jenkins运行的时候,它执行quality profiles和quality gate. 假如quality gate检查通过,那么Jenkins pipeline继续,假如检查失败的话,那么Jenkins pipeline将会终止,但分析会存在的。
2.3.1 点击Quality Gates

2.3.2 点击添加条件

2.3.4添加条件信息如下

配置建的项目使用创建的质量门。




三 jenkins集成sonar
3.1 在jenkins中安装sonar插件

在Jenkins中配置SonarQube
3.2 在管理jenkins的系统设置配置

需要自己添加凭据

暂时配置完成
DEVOPS技术实践_11:Jenkins集成Sonar的更多相关文章
- DEVOPS技术实践_01:jenkins集成平台
一.准备环境 准备三台机器 角色 IP地址 用户名 密码 jenkins-master 172.25.254.130 admin meiyoumima gitlab 172.25.254 ...
- DEVOPS技术实践_18:Jenkins的Pinpeline对于参数的使用
因为最近使用Pipeline声明式语法构建项目,但是最近项目的参数设置较多,特地的来学习一下关于参数的调用和测试,主要式从一个大神那里学习的,结尾回贴上大神的博客链接 1 构建一个pipeline项目 ...
- DEVOPS技术实践_17:Jenkins使用扩展邮件功能发送邮件
一 环境准备 1.1 安装插件Email Extension 系统管理-管理插件-安装Email Extension插件 1.2 配置 配置jenkins邮箱的全局配置:系统管理-系统设置-完成邮箱配 ...
- DEVOPS技术实践_09:Jenkins多分支管道
简介 多分支的管道是在jenkins2.x中新增的功能 . 多分支管道允许你针对分布式的控制器的每个分支创建一个管道. 下图是对它的一个描述.使用jenkinsfile去创建多分支的管道,jenkin ...
- DEVOPS技术实践_07:Jenkins 管道工作
一 简介 由于在公司构建很多工作,都是使用的maven工作构建的,这种构建方式很大缺点就是所有的工作都需要一步一步的配置,当项目较多,需求变动时,需要很大的精力去修改配置,很费劲 Pipeline即为 ...
- DEVOPS技术实践_02:jenkins自动构建项目
一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...
- jenkins集成sonar
用于我的sonar已经在一台机器上搭建好了,但是每次都要人工去执行sonar-run,很麻烦,所以就想着集成到jenkins上,在jenkins上点点按钮就可以看sonar结果,所以很抱歉,本博客不设 ...
- Jenkins 集成 Sonar
Jenkins 与 Sonar 集成:Sonar 是 Jenkins 之外独立运行的一个服务.Jenkins 中安装插件 SonarQube(并配置其 Sonar Server 的 URL / Acc ...
- Jenkins集成Sonar Quabe和权限配置
目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...
随机推荐
- mysql LIMIT 子句用法及原理
使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,已 经为我们提供了这样一个功能. LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接 ...
- 荣获“5G MEC优秀商用案例奖”,阿里云边缘计算发力新零售
4月24日,在中国联通合作伙伴大会的 “5G MEC(Mobile Edge Computing,移动边缘计算)边缘云赋能行业数字化转型”分论坛上,阿里云“基于5G边缘计算的新零售应用案例”荣获201 ...
- LeetCode70 Climbing Stairs
题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...
- USDT钱包安装
安装USDT钱包 wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.4.0-x86_64-linux-gn ...
- java+内存分配及变量存储位置的区别
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...
- css中background和 background-color 同时使用的优先级
给背景图片设置一个默认背景颜色,有以下两种方法: <style> .bg1{ background:url(http://debug.itxst.com/img/logo.png) red ...
- H3C ISDN DCC基本配置示例
- PHP利用纯真IP数据库在本地实现IP地址信息查询
https://blog.csdn.net/myweishanli/article/details/45098693 准备工作: 建议本地IP地址数据库,请到http://www.cz88.net/这 ...
- Python--day70--ORM查询练习
ORM查询练习: import os import sys if __name__ == '__main__': # 加载Djang00项目的配置信息 os.environ.setdefault(&q ...
- dos taskkill 命令
C:\Users\asn\Desktop>taskkill /? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter ...