前言

前面已经有介绍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的更多相关文章

  1. DEVOPS技术实践_01:jenkins集成平台

    一.准备环境 准备三台机器 角色 IP地址 用户名 密码 jenkins-master   172.25.254.130    admin   meiyoumima gitlab 172.25.254 ...

  2. DEVOPS技术实践_18:Jenkins的Pinpeline对于参数的使用

    因为最近使用Pipeline声明式语法构建项目,但是最近项目的参数设置较多,特地的来学习一下关于参数的调用和测试,主要式从一个大神那里学习的,结尾回贴上大神的博客链接 1 构建一个pipeline项目 ...

  3. DEVOPS技术实践_17:Jenkins使用扩展邮件功能发送邮件

    一 环境准备 1.1 安装插件Email Extension 系统管理-管理插件-安装Email Extension插件 1.2 配置 配置jenkins邮箱的全局配置:系统管理-系统设置-完成邮箱配 ...

  4. DEVOPS技术实践_09:Jenkins多分支管道

    简介 多分支的管道是在jenkins2.x中新增的功能 . 多分支管道允许你针对分布式的控制器的每个分支创建一个管道. 下图是对它的一个描述.使用jenkinsfile去创建多分支的管道,jenkin ...

  5. DEVOPS技术实践_07:Jenkins 管道工作

    一 简介 由于在公司构建很多工作,都是使用的maven工作构建的,这种构建方式很大缺点就是所有的工作都需要一步一步的配置,当项目较多,需求变动时,需要很大的精力去修改配置,很费劲 Pipeline即为 ...

  6. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  7. jenkins集成sonar

    用于我的sonar已经在一台机器上搭建好了,但是每次都要人工去执行sonar-run,很麻烦,所以就想着集成到jenkins上,在jenkins上点点按钮就可以看sonar结果,所以很抱歉,本博客不设 ...

  8. Jenkins 集成 Sonar

    Jenkins 与 Sonar 集成:Sonar 是 Jenkins 之外独立运行的一个服务.Jenkins 中安装插件 SonarQube(并配置其 Sonar Server 的 URL / Acc ...

  9. Jenkins集成Sonar Quabe和权限配置

    目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...

随机推荐

  1. spring-jpa通过自定义sql执行修改碰到的问题

    在编写自定义SQL的时候需要注意 @Query 注解只能用来查询,想要进行添加.修改和删除操作需要配合 @Modifying 注解一同使用 @Modifying @Query("update ...

  2. 解决uploadify插件不同浏览器下的兼容性问题

    http://www.thinkphp.cn/code/2138.html uploadify在部分浏览器上没法使用,或者各种报错的解决方法.uploadify插件上传图片是很爽的体验. 如果用chr ...

  3. 微信小程序之购物车demo

    这篇小demo主要使用了一下几个技术点 1.全局变量的使用 在这里定义的变量 任何一个页面和组件都可以访问到 在使用到的页面 const app = getApp(); 声明一个实例 然后 app.g ...

  4. 根据花瓶的侧面投影图,用Matlab绘制花瓶的三维立体图

    现有一花瓶侧面投影如图 问题: 1)    做出该花瓶三维立体图: 2)    计算其表面积:  计算其体积. 第一次参加数学建模,从来没有接触过Matlab语言,一上来就碰到这种数字图像处理的问题就 ...

  5. Oracle基础学习4--Oracle权限传递

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wang379275614/article/details/32215325 以下将用一个实例来解说: ...

  6. C++构造函数和文件组织

    构造你的函数 在 main() 上方声明函数,并在 main 下方定义函数 在 main() 上方同时声明并定义函数. 随着 C++ 程序变得越来越复杂,你可能需要将代码分成多个文件.分开保存函数定义 ...

  7. python基础之逻辑题(3)

    Python基础之逻辑题(3) 1.编写一个函数实现将IP地址转换成一个整数 2.求结果:---lambda 3.求a的结果 4.求下面nums的输出 5.求下面片段的输出 6.写出程序的结果:--- ...

  8. day3_python之函数基础知识

    一 .为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维 ...

  9. selenium webdriver学习(二)————对浏览器的简单操作(转载JARVI)

    selenium webdriver学习(二)————对浏览器的简单操作 博客分类: Selenium-webdriver   selenium webdriver对浏览器的简单操作 打开一个测试浏览 ...

  10. 你看Http的 三次握手

    你看Http的 三次握手 按层次分,TCP位于传输层,而且TCP协议能够确认数据是否送达到对方,所以在客户端请求资源的时候,你得让俺知道咱俩关系是不是已经确定了啊,对不.这跟谈恋爱一样一样的,得先确定 ...