前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins pipeline 2 -- Groovy语法介绍

Jenkins pipeline 2 -- Groovy语法介绍

作者头像
mafeifan
发布2019-07-09 17:25:57
6.6K0
发布2019-07-09 17:25:57
举报
文章被收录于专栏:finleyMafinleyMa

写 pipeline 就是写 Groovy 代码,Jenkins pipeline 其实就是基于Groovy语言实现的一种DSL。 了解一些Groovy语法知识是很有必要的

不想本地安装Groovy环境的话,可以打开 groovy-playground 运行线上groovy代码,查看结果 该网站可能需要会访问外国网站。

image.png

必要的Groovy语法知识

  • 定义变量和方法用def关键字,def name="jack"
  • 语句最后的分号不是必需的
  • 方法调用时可以省略括号
代码语言:javascript
复制
def say(String name = "world") {
  return "hi " + name
}
// 调用
say name = "jack"

  • 双引号支持插值,单引号不会解析变量,原样输出
代码语言:javascript
复制
def name = 'world'
// 结果: hello world
print "hello ${name}"
// 结果: hello ${name}
print 'hello ${name}'

  • 三双引号和三单引号都支持换行,只有三双引号支持插值
代码语言:javascript
复制
def foo = """ line one
line two
${name}
"""

  • 支持闭包
代码语言:javascript
复制
// 定义闭包
def codeBlack = {print "hello closure"}
// 闭包当做函数调用
codeBlack
// 闭包可以赋值给变量,或者作为参数传递
def pipeline(closure) {
  closure()
}
pipeline(codeBlack)

// 因为括号是非必需的,下面几种写法结果是一样的,是不是和Jenkins pipeline很像呢

代码语言:javascript
复制
pipeline( {print "hello closure"} )
pipeline { 
  print "hello closure"
} 
pipeline codeBlack

  • 闭包的另一个用法
代码语言:javascript
复制
def stage(String name, closure) {
  println name
  closure()
}

// 正在情况下,我们这样使用stage函数

stage("stage name", {
   println "closure"
})

// 最终打印
/*
stage name
closure
*/
// 但是,在Groovy里,可以直接这么写

stage("stage name") {
  print "closure"
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 必要的Groovy语法知识
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档