使用Jenkins进行持续集成
1. 修改Jenkins插件下载地址
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址:
Jenkins->Manage Jenkins->Advanced,把Update Site改为国内插件下载地址,https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,保存,重启tmocat
2. 下载汉化插件
Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese",然后点击下载,然后重启jenkins,就可以看到中文界面了
3. 安装Maven Integration插件
按照上述操作安装,如果跟我一样网不好的,到这个网站找到插件,下载下来,然后在高级->上传插件里面安装吧,无奈 https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
4. 进行全局配置
-
配置Jdk
首页->Global Tool Configuration->新增maven->取消勾选自动安装->输入maven名称和本地地址->保存
查看软件版本.png
jdk版本.png
-
配置Maven
首页->Global Tool Configuration->新增Jdk->取消勾选自动安装->输入Jdk名称和本地地址->保存->应用
maven版本.png
-
配置Git
首页->Global Tool Configuration->Git->输入名称,Git.exe的路径>保存->应用
配置git.png
5. 新建项目
返回首页->创建一个新项目->构建一个maven项目->输入标题->确定->点击Pre Steps->Build(这时候会看到一个报错,点击链接跳过去进行配置)

6. 进行源码管理
返回首页->点击项目->源码管理->选择Git->Repository URL里输入github仓库的ssh的地址->点击添加->输入github的用户名,密码->点击添加->保存


7. 构建项目
点击Build->Goals and options输入clean build->点击保存->应用

8. 运行项目
返回首页->点击项目->Build now->点击控制台输出可以查看运行情况
ps:控制台乱码解决方案:https://blog.csdn.net/wushuai150831/article/details/80454105
9. 构建触发器配置
功能:配置定时任务
点击项目->配置->构建触发器配置-触发器常用的主要有2种,一种是定时配置,不管版本是否发生变更(Build periodically),一种是隔一段时间比较一次,如果源码发生变更就build,否则不build(Poll SCM)

时间表达式:
- 时间表达式是由五部分组成,每一部分中间由逗号隔开,如下:
MINUTE HOUR DOM MONTH DOW
MINUTE : 分钟值,0-59
HOUR:时钟值,0-23
DOM:日期,1-31(day of month)
MONTH:月份,1-12
DOW:一周中的某一天(0-7)0-7都代表周天(day of week) - 每一部分还可以设置为以下的值:
*:指所有的值
M-H:指一个范围内区间的值
M-H/X 或 */X:指在(一个范围内/所有)满足间隔X的值
A,B....Z:列举了这一部分所有的值
为了实现负载均衡,使用H Jenkins会根据当前系统的压力分配任务去确定执行的具体时间,避免出现同一时间高并发的问题,H可以和范围一起使用,H符号可以被认为是一个范围内的随机值
- 每15分钟执行一次(可能在:07,:22,:37:52 )
H/15 * * * * - 在每半小时前半小时中每隔10分钟跑一次(3次,可能是在:04,:14,:24)
H(0-29) /10 * * * * - 每个工作日的上午9:45分开始到下午4点每两个小时间隔执行一次
45 9-16/2 * * 1-5 - 在每周的上午9点到下午5点每隔2小时执行一次,当天具体几分执行是随机的(4次,可能是在10:38,12:38,14:38,16:38)
H H(9-16) /2 * * 1-5 (注意9点到16点指的9点到16:59) - 1-11月份的每个月1号和15号执行,当天具体几点执行是随机的
H H 1,15 1-11 *
10. 构建后操作
功能:设置定时任务跑完后要做的操作,比如发测试报告邮件等
- 安装Email插件 Eamil Extension Plugin
-
设置Extend Email Notification:
进入系统管理->系统设置->Extend Email Notification进行设置
邮箱配置.png
ps:password不是qq密码,是qq邮箱申请开通IMAP/SMTP服务后收到的密码

- 底下的邮件通知也做一样配置,就不赘述了
-
配置系统管理员邮件地址
配置系统管理员邮件地址.png
- 验证邮件是否有配置好
系统设置->邮件通知->输入邮箱地址->点击测试
先在全局配置暂时配置这些,一些个性化的邮件配置操作建议在项目设置
11.对邮件配置进行个性化操作
返回首页->点击项目->设置->构建后操作->增加构建后操作步骤->Editable Email Notification
-
设置发件人收件人列表
普通设置.png
-
高级设置:个性化设置发件人列表,什么情况下发送等
高级设置.png
- 邮件内容编辑
- project receipt list:收件人,多个逗号隔开
- project -reply to list:收到邮件者回复时间回复的人,一般不会回复
- content type:内容类型,我们选择html
-
default subject:邮件主题,如
邮件主题.png
- default content:邮件内容(自定义,网上很多模板)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<h3>以下是Jenkins自动发送的邮件,请勿回复!</h3>
<div>
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li><br />
<li>构建编号 : 第${BUILD_NUMBER}次构建</li> <br />
<li>触发原因: ${CAUSE}</li><br />
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li><br />
<li>测试报告: api_report.html附在附件中,请查收</li><br />
</ul>
</td>
</tr>
</table>
</div>
<div>
<table>
</table>
</div>
</body>
</html>