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

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

GIT_HOME

GIT_HOME=/usr/local/git
export PATH= P A T H : PATH: PATH:GIT_HOME/bin

刷新

source /etc/profile


**点击add git,取消自动安装,填写jenkins所在服务器git路径**



![](https://img-blog.csdnimg.cn/img_convert/eb0833e9daf9276345ab78b8b2148ac1.png)


**3、maven**


**下载地址:**[http://maven.apache.org/download.cgi]( )


下载后上传maven至服务器解压,并配置环境变量,并配置maven的settings.xml文件,和自己本地一样



![](https://img-blog.csdnimg.cn/img_convert/2e04b8d8654eea7c017eaeed30a34ca0.png)


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



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


### ***02、*jenkins集成sonar、jacoco**


**01、jenkins安装插件**


**进入系统管理** **--> 插件管理,安装sonar插件** 



![](https://img-blog.csdnimg.cn/img_convert/93b738f703316bfef4d2ff9fed34f990.png)


**安装maven插件**



![](https://img-blog.csdnimg.cn/img_convert/b240a77bd349a09223808cc8d562356b.png)


**安装jacoco插件**



![](https://img-blog.csdnimg.cn/img_convert/9e9eb911c436e2f80325ce7f3814a12c.png)


**安装gitlab和gitlab hook插件**



![](https://img-blog.csdnimg.cn/img_convert/9cc6b8acb83df8076cef4038b89def88.png)


**等待安装完成后重启jenkins**


**02、jenkins配置sonar服务**


**先在sonar平台上创建一个token**


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


3aa08af94991e923e4468b3931035ef6328101e6



![](https://img-blog.csdnimg.cn/img_convert/438469fc32102375bfa5c31e34bb4f47.png)



**jenkins上配置sonar的token凭据**


进入系统管理-->Manage Credentials,点击全局,再点击添加凭据



![](https://img-blog.csdnimg.cn/img_convert/3e1b5066952904ae7aec4b55de687c5a.webp?x-oss-process=image/format,png)


**设置凭据并保存**



![](https://img-blog.csdnimg.cn/img_convert/183d832e3121ae9db3eb420652a13d74.png)


**jenkins配置sonar服务**


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



![](https://img-blog.csdnimg.cn/img_convert/930ded29a06df847f16494c04c14d11d.png)


最后点保存


**jenkins配置sonar扫描器**


进入系统管理-->全局工具配置,找到SonarQube Scanner区域,点击新增SonarQube Scanner



![](https://img-blog.csdnimg.cn/img_convert/4c3968a4acfc67af6cc88fa34be61763.png)


**03、Jenkins配置扫描任务**


**点击新建Item,按照下图进行输入和选择**



![](https://img-blog.csdnimg.cn/img_convert/86679722d2a5eccb77dc496c50c1d958.png)


**设置General**



![](https://img-blog.csdnimg.cn/img_convert/534c69b25fca7714cd4dc126d88522f8.png)


**设置源码管理**


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



![](https://img-blog.csdnimg.cn/img_convert/ce317e96aae8462056607fcb6fb74c0e.png)


**设置构建触发器**


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



![](https://img-blog.csdnimg.cn/img_convert/1cbbf829ed53aa3aea4256a932e6685c.png)


**① GitLab webhook**


对应的就是图中的Build when a change is pushed to GitLab,**设置如下:**


* 勾选Build when a change is pushed to GitLab,点击高级最后的generate 生成secret



![](https://img-blog.csdnimg.cn/img_convert/0a4690a38c5c9e8bc1123e6eb45a5cce.png)


* 在gitlab上创建新的webhook


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



![](https://img-blog.csdnimg.cn/img_convert/b07e1c6d7068afdb16ff474b04bfc305.png)


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



![](https://img-blog.csdnimg.cn/img_convert/df238f435d41b78b194e1a4883f6e26a.png)


**② 定时构建和轮询SCM**


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



![](https://img-blog.csdnimg.cn/img_convert/5233dc2f83029c2121bd79a7dd8de9aa.png)



> 
>  第一个\*表示分钟,取值是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分钟构建一次: 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分钟构建一次: 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分钟构建一次: 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分钟构建一次: 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分钟构建一次: 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 \* \* \* \* |


**③ 其他工程构建后触发**


指的是在其他任务执行完成后,自动驱动当前任务执行,一般是具有上下游关系时使用



![](https://img-blog.csdnimg.cn/img_convert/38df2fbcb9b3e43403d9b943a3899ceb.png)


**配置Build**


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



clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true



![](https://img-blog.csdnimg.cn/img_convert/efa8a5fc57ca71579d1b336f632e0905.png)


**配置jacoco报告插件**


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



![](https://img-blog.csdnimg.cn/img_convert/ccefaf44ca828184d4f6d5449d03770d.png)


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


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


覆盖率不满足时任务失败则sonar代码扫描不会进行



![](https://img-blog.csdnimg.cn/img_convert/a15d4f50f72aeae3e5a6a72cef329d79.png)


**sonar扫描插件设置**



![](https://img-blog.csdnimg.cn/img_convert/af79a8ce760d627bba3be761e2d8c78c.png)


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



-Dsonar.projectKey=jacoco$BUILD_NUMBER
-Dsonar.projectName=jacocojenkins
-Dsonar.language=java
-Dsonar.sourceEncoding=UTF-8



![](https://img-blog.csdnimg.cn/img_convert/4b619f58efaa05eb5346b757fb6ff223.webp?x-oss-process=image/format,png)



![img](https://img-blog.csdnimg.cn/img_convert/03e19f539491462857a75ab44c68d55c.png)
![img](https://img-blog.csdnimg.cn/img_convert/6732672499b31045a77bbd5a69b811d2.png)
![img](https://img-blog.csdnimg.cn/img_convert/de325afeff94247c9c14a9cbba38bcb6.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

图片转存中...(img-iRiHEDbP-1715704429664)]
[外链图片转存中...(img-G1AjRssn-1715704429665)]
[外链图片转存中...(img-YERwWGXJ-1715704429665)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值