- Jenkins 2.x实践指南
- 翟志军编著
- 347字
- 2020-08-28 00:01:33
3 pipeline语法讲解
3.1 必要的Groovy知识
虽然学习Jenkins pipeline可以不需要任何Groovy知识,但是学习以下Groovy知识,对于我们写pipeline如虎添翼。
• 虽然Groovy同时支持静态类型和动态类型,但是在定义变量时,在Groovy中我们习惯使用def关键字,比如def x="abc"、def y=1。
• 不像Java,Groovy语句最后的分号不是必需的。
• Groovy中的方法调用可以省略括号,比如System.out.println "Hello world"。
• 支持命名参数,比如:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/30_1.jpg?sign=1739344899-bkBYhaqWYWXxuvg7BKJjBm1vPJdQt78H-0-1691f97097c9741372493733111a10d4)
• 支持默认参数值,比如:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/30_2.jpg?sign=1739344899-e9lK5dQbfSs1Q1J5bzWPljByzEkLYo02-0-2128bd0b2529f4b56eb1f0a744845f5b)
• 支持单引号、双引号。双引号支持插值,单引号不支持。比如:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/31_1.jpg?sign=1739344899-v7pjgeIETRKoxEcXtyKnqBEbCN6f7ZsE-0-6600c18ab11758ba2bbce9e6a56f05d3)
• 支持三引号。三引号分为三单引号和三双引号。它们都支持换行,区别在于只有三双引号支持插值。比如:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/31_2.jpg?sign=1739344899-aEjK0i53JTwkug9mzDEdtCRHXp7DnpXR-0-e45e9cbc2a427e66df6d3b54e30b1b4f)
• 支持闭包。闭包的定义方法如下:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/31_3.jpg?sign=1739344899-av8q8BWWD0wBEurpng1WC3OrvlNFx7Q3-0-b04d8df74c4f8b9cc2ed05654bc5b023)
还可以将闭包看作一个参数传递给另一个方法。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/31_4.jpg?sign=1739344899-WICcpt2EtZWNUxAAFA6ziBekpFnrwy3i-0-b7ff37422038c20ace60ad9567a5809a)
• 闭包的另类用法。我们定义一个stage函数:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/31_5.jpg?sign=1739344899-YelEiQtyoqi9kyRBhvdBQQXzgw2XQWBe-0-b6318c5d53f58a1c9dfe4b9a977fba3b)
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/32_1.jpg?sign=1739344899-YWQydVKtIWkWCJUfqId6GZfhttgSOLdC-0-fc3c155412ed06d87f56313cb402cd96)
这些知识点没有连贯性,读者浏览一遍后,大概有个印象就可以。等学习完本章后,再回头看就理解Jenkins pipeline的语法了。