热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10分钟搭建一套代码质量监控平台

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥

每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试


01 jenkins安装部署

01 Jenkins下载

中文官网地址:https://www.jenkins.io/zh/
在这里插入图片描述

02 Jenkins环境安装

安装jdk上传jenkins安装包启动jenkins,耐心等待启动完成(第一次需要个几分钟)java -jar jenkins.war执行日志里一定要记着下面红框里的东西

在这里插入图片描述

访问Jenkins,按步骤安装http://192.168.1.12:8080 端口默认就是80801、输入上一步记住的密码,或者去/root/.jenkins/secrets/initialAdminPassword文件里拷贝2、安装推荐的插件(需要耐心等待)3、创建管理员,点击保存并完成
![在这里插入图片描述](https://img-blog.csdnimg.cn/a574580b1c904bfc94c242150ae9f240.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVGVzdGZhbl96aG91,size_20,color_FFFFFF,t_70,g_se,x_16)4、开始jenkins

在这里插入图片描述

03 全局工具配置

进入Manage Jenkins–>Global Tool Configuration,中文的话就是系统管理–>全局工具配置,依次配置各个工具

jdk点击新增,取消自动安装,填写jenkins所在服务器的jdk路径

在这里插入图片描述

git先在jenkins所在服务器上手动安装git下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/ 1.下载git 2.29.0版本2.下载后上传git至服务器解压3.进入git目录执行如下操作:#安装编译依赖
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker# 检验相关依赖,设置安装路径
./configure --prefix=/usr/local/git# 编译安装
make && make install# 删除已有的 git
yum remove git# 配置环境变量
vim /etc/profile# GIT_HOME
GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin# 刷新
source /etc/profile4.点击add git,取消自动安装,填写jenkins所在服务器git路径

在这里插入图片描述

maven下载地址:http://maven.apache.org/download.cgi免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

下载后上传maven至服务器解压,并配置环境变量,并配置maven的settings.xml文件,和自己本地一样
在这里插入图片描述

其他工具如有需要也可以进行配置

注意:全局工具中的配置写的基本都是jenkins所在服务器上的各个工具的路径。


02 jenkins集成sonar、jacoco

01 jenkins安装插件

进入系统管理 --> 插件管理,安装sonar插件
在这里插入图片描述

安装maven插件
在这里插入图片描述

安装jacoco插件
在这里插入图片描述

安装gitlab和gitlab hook插件
在这里插入图片描述

等待安装完成后重启jenkins。

02 jenkins配置sonar服务

1、先在sonar平台上创建一个token

进入我的账号–>安全,复制令牌,一定要记住只有一次机会

3aa08af94991e923e4468b3931035ef6328101e6
在这里插入图片描述

2、jenkins上配置sonar的token凭据

进入系统管理–>Manage Credentials,点击全局,再点击添加凭据
在这里插入图片描述

3、设置凭据并保存
在这里插入图片描述

4、jenkins配置sonar服务

进入系统管理–>系统设置,找到SonarQube servers区域,点击Add SonarQube

在这里插入图片描述

最后点保存

5、jenkins配置sonar扫描器

进入系统管理–>全局工具配置,找到SonarQube Scanner区域,点击新增SonarQube Scanner
在这里插入图片描述

03 Jenkins配置扫描任务

1、点击新建Item,按照下图进行输入和选择
在这里插入图片描述

2、设置General
在这里插入图片描述

3、设置源码管理

通常我们的代码通过版本管理工具进行管理,svn或者git都比较常见,咱们这里用的是git
在这里插入图片描述

4、设置构建触发器

构建触发器的意思是在什么情况下这个任务会自动执行,自动触发的方式有很多中,一般选择一两种即可;文档会介绍几种用法
在这里插入图片描述

GitLab webhook对应的就是图中的Build when a change is pushed to GitLab,设置如下:1、勾选Build when a change is pushed to GitLab,点击高级最后的generate 生成secret

在这里插入图片描述

2、在gitlab上创建新的webhook

登录gitlab,打开自己的项目仓库,点击设置-->导入所有仓库

在这里插入图片描述

测试一下,界面上方显式http 200则说明配置成功

在这里插入图片描述

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

定时构建和轮询SCM1、定时构建顾名思义,定时构建就是指到了规定的时间就会自动执行这个任务2、轮询SCM轮询SCM也是一种定时任务,他的意思是到了指定的时间会去判断代码版本库是否发生变化,如果发生变化,则自动执行任务,没有变化则不执行任务3、定时任务的规则定时任务的规则和linux的定时任务写法是一致的,

在这里插入图片描述

第一个*表示分钟,取值是0-59
第二个*表示小时,取值是0-23
第三个*表示一个月的几号,取值1-31
第四个*表示是几月,取值1-12
第五个*表示周几,取值0-7,其中0和7都代表周日

举几个例子:

每隔5分钟构建一次: H/5 * * * *每两小时构建一次: H H/2 * * *周一到周五早9点到下午16点之间,每隔两小时的第45分钟执行:45 9-16/2 * * 1-5除了12月,每个月的1号15号执行:H H 1,15 1-11 *每小时的前半个小时每隔10分钟执行一次:H(0-29)/10 * * * *其他工程构建后触发指的是在其他任务执行完成后,自动驱动当前任务执行,一般是具有上下游关系时使用

在这里插入图片描述

5、配置Build

因为咱们这个任务是做sonar扫描和jacoco统计的,所以Goals and options设置如下,并不是所有任务都这么配哦

clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
在这里插入图片描述

6、配置jacoco报告插件

jacoco报告插件可以将覆盖率情况最后展示在jenkins的任务结果中,并且还可以针对覆盖率是否通过进行设置;

覆盖率不达标则任务失败,覆盖率达标则任务成功

在这里插入图片描述

设置代码覆盖率的最大值最小值,勾选不满足最小值时任务失败,设置最小值(根据各自公司定)

增量变化,如果勾选了,指的是比上一次成功构建的覆盖率的增量变化,只能比设置的增量大,比增量小的任务也会失败

覆盖率不满足时任务失败则sonar代码扫描不会进行
在这里插入图片描述

7、sonar扫描插件设置
在这里插入图片描述

然后点击高级,输入如下内容

-Dsonar.projectKey=jacoco$BUILD_NUMBER

-Dsonar.projectName=jacocojenkins

-Dsonar.language=java

-Dsonar.sourceEncoding=UTF-8

在这里插入图片描述

8、保存后执行

手动执行

在这里插入图片描述在这里插入图片描述

自动执行自动执行取决于设置的构建触发,咱们以git代码提交为触发条件,修改本地项目代码,然后git提交可以在jenkins任务界面看到自动启动的执行

在这里插入图片描述

笔者跟大家分享一个福利!扫码回复【csdn码哥群】入软件测试自学交流群,可免费听技术讲座+领学习资料+视频课免费看
在这里插入图片描述

作者:码同学软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
author-avatar
手机用户2702937647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有