从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个【构建一个 maven 项目】的任务类型,那这些任务类型究竟有何区别,以及我们在创建任务时这些类型该如何选择呢?各个类型的具体区别其实看描述就能有个大概的了解,我这里就不重复描述了,最有效的做法就是每种类型的任务都建立几个,测试下看看有什么差异,这种方式很快就会了解不同类型任务的功能特性。
我这里主要介绍下【构建一个自由风格的软件项目】、【流水线】、【文件夹】这三种类型。
从描述中我们可以认为【文件夹】类型的任务就是一个独立的集合,它可以针对这个文件夹有自己独立的特殊配置文件,【文件夹】类型任务下面可以再建立所有类型的任务。自由风格类型的任务所有配置都在 Jenkins 上面进行配置修改,流水线类型的任务的配置是通过一种特定的语法脚本来描述。这些脚本文件可以通过代码仓库进行管理起来。我们可以创建一个【流水线】类型的任务,看看详细情况:
新建一个【流水线】类型的任务,名称为 jenkins-pipeline-test-task
:
可以看到很多的配置选项都没了,就剩一个编写流水线脚本的文本框:
展开【try sample Pipeline...】选项,选择【Hello World】,我们会看到文本框中会自动填入一段流水线代码:
【保存】后再【立即构建】看看效果吧,日志输出了 "Hello World":
【流水线】类型的任务可以做到一些【自由风格】任务做不了的事情,并且一个最大的好处就是可以做到"配置及代码",【流水线】类型的脚本文件除了直接在文本框里面输入还可以通过代码仓库进行管理。Jenkins 流水线任务支持脚本式的语法和申明式语法,两种语法的区别简单讲就是申明式语法有严格的语法结构,更加标准化,而脚本式语法就更加随意些。两种语法的具体区别可以看看官网的说明 https://www.jenkins.io/zh/doc/book/pipeline/syntax/#compare,在我们的后面学习中,我都将采用申明式语法,并且官方也是推荐采用申明式语法。