前言
在本文开始前可以先看看这篇文章:
Jenkins + Gitlab + Maven + Tomcat 持续集成部署 SpringBoot 应用实践,除了 Jenkins 构建项目的方式不一样之外,其他配置都一样。
关于 pipeline 的简介和 pipeline 的两种语法模型的区别可以看这篇文章: Pipeline 声明式和脚本式的主要区别
Spring Boot 项目准备
这里创建了一个简单的 Spring Boot 项目,功能简单,运行后会提供一个可访问的 index 页面。结构图如下:

项目根路径有个 Jenkinsfile,关于该项目的构建与部署步骤等任务都被记录在该文件中,随着项目一起进行版本化迭代。
Jenkinsfile 里填写 pipeline 如下,这里采用的是声明式语法,这里分为 3 个 stage 分别对应代码 checkout,编译构建以及项目部署三个阶段,最后会有 email 推送每次构建的结果。
1 | pipeline { |
同样将该项目推送到本地gitlab 上并配置好 webhook。

Jenkins 配置 pipeline
首先去插件中心安装 pipeline 插件

安装完插件后创建一个新 item 时可以看到可以选择一个 pipeline 类型的项目。

然后关于 pipeline 的配置可以参考下图,其中 pipeline 的 执行代码会引用到 Spring Boot 项目根路径的 Jenkinsfile。

构建并部署
保存 pipeline 配置后,可以通过提交代码到 master 分支触发构建任务,也可以直接在 Jenkins 手动启动一次 build up.

观察上图,pipeline 任务可以以可视化视图的形式展示出来,可以直观地看到每一个 stage 的执行时间和执行结果。

执行成功后会将项目 deploy 到 tomcat 容器,点击访问。