Pipeline Groovy 语法

2023-05-16

Groovy是一种功能强大,可选类型和动态 语言,支持Java平台。旨在提高开发人员的生产力得益于简洁,熟悉且简单易学的语法。可以与任何Java程序顺利集成,并立即为您的应用程序提供强大的功能,包括脚本编写功能,特定领域语言编写,运行时和编译时元编程以及函数式编程。

字符串操作

注释

//  单行注释   
  
/*
    多行注释
*/

字符串操作

字符串表示方式: 单引号、双引号、三单双引号
字符串操作:截取字符串、判断某个字符串是否存在、获取字符串长度、字符反转等……

//定义一个字符串类型变量name,定义一个变量lovely包含多行内容

                script{
                    String name = 'zhangsan'
                    String lovely = """
                    dev
                    ops
                    """
                    println(name)
                    println(lovely)
                }

-------------
//字符串和变量值截取,使用split选择分隔符,先分割后截取

                script{
                    name = "yuanyuan-gao"
                    String Version = "release-1.2.3"
                    println(Version.split("-")[0])
                    println(Version.split("-")[-1])
                    println("${name}".split("-")[-1])
                }
         
控制台输出 release   1.2.3  gao
-------------
//使用 contains 判断是否包含某字段

                script{
                    name = "yuanyuan-gao"
                    String Version = "release-1.2.3"
                    println(Version.contains("release"))
                }
           
---------------
//打印字符串的长度

                script{
                    name = "yuanyuan-gao"
                    String Version = "release-1.2.3"
                    println(Version.size())
                    println(Version.length())
                }
--------------
//引用其他变量值作为值

                script{
                    name = "yuanyuan-gao"
                    String Version = "release-1.2.3"
                    println(Version)
                    def message = "Version ${Version}"
                    println(message)
                }
            
控制台输出 release-1.2.3 和 Version release-1.2.3

---------------
//判断字符串结尾
                script{
                    name = "yuanyuan-gao"
                    String Version = "release-1-2-3"
                    println(Version.endsWith("3"))
                }
--------------
//字符串增删操作 +- 或plus和minus
                script{
                    String log = "error: xxxxxx aa"
                    println(log.minus("a"))
                    println(log - "a")
                    println(log.plus("aa"))
                    println(log + "aa")
                }    
--------------
//字符串反转
                script{
                    String nums = "1234567"
                    println(nums.reverse())
                }

列表 List

// 定义一个list并打印

				script{
                def mylist = ["a","b",1,2,"devops"]
                println(mylist)
				}

// list的元素增删

				script{
                def mylist = ["a","b",1,2,"devops"]
                println(mylist + "jenkins")
                println(mylist - "devops")
				}


// 判断元素是否为空
println(mylist.isEmpty())

// 列表去重
println(mylist.unique())

// 列表反转
println(mylist.reverse())

// 列表排序
println(mylist.sort())

// 判断列表是否包含元素
println(mylist.contains("devops"))

// 列表的长度
println(mylist.size())

//扩展列表定义方式
String[] stus = ["zhangsan", "lisi","wangwu"]
def numList = [1,2,3,4,4,4] as int[]

// 通过索引获取列表元素
println(numList[2])

// 计算列表中元素出现的次数
println(numList.count(4))

映射 Map

// 定义map并打印出value值

				script{
                def mydef = ["mvn":"/usr/local/maven","jar":"/usr/local/jar"]
                println(mydef.mvn)
                println(mydef.jar)
				}


// 根据key给map重新赋值

				script{
                def mydef = ["mvn":"/usr/local/maven","jar":"/usr/local/jar"]
                mydef["mvn"] = "new maven"
                println(mydef.mvn)
				}

// 判断map是否包含某个key或者value

				script{
                def mydef = ["mvn":"/usr/local/maven","jar":"/usr/local/jar"]
                println(mydef.containsKey("mvn"))
				}

// 返回map的key 列表

				script{
                def mydef = ["mvn":"/usr/local/maven","jar":"/usr/local/jar"]
                println(mydef.keySet())
				}

条件语句

if语句,在Jenkinsfile中可用于条件判断。

/*
定义变量参数name
如果name 等于dev则打印dev,
如果name 等于test则打印test,
上面都不匹配则打印skipdeploy
*/

pipeline {
	agent { label  "build" }
	stages {
		stage("build"){
			steps{
				script{
                 String name = "hhh"
                 if ( name == "dev"){
                 println("dev……")    
                 } else if ( name == "test"){
                     println(test……)
                 } else {
                     println("skipdeploy……")
                 }
				}
			}
		}
	}
}

switch语句

/*
定义参数branchName
匹配 develop  则打印develop ,跳出。
匹配 release  则打印release ,跳出。
默认匹配, 打印 error ,退出。


*/

String branchName = "release"

switch(branchName) {
	case "develop":
	    println("develop .....")
		break
	case "release":
		println("release.....")
		break
	default:
	    println("error。。。。。。")
}

for循环语句

// 遍历0-9,打印
				script{
				    for (i=1; i<10; i++ ){
                    	println(i)
                    }
// 循环5次
5.times { 
	println("hello")
}

// 遍历 0-4
5.times { i ->
   println(i)
}

// 遍历List
def serverList = ["server-1", "server-2", "server-3"]
for ( i in serverList){
	println(i)
}

// 使用each遍历map
def stus = ["zeyang":"177", "jenkins":"199"]
stus.each { k, v ->
	println(k+"="+v)
}

// 使用for遍历map
for (k in stus.keySet()){
	println(k+"="+stus[k])
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pipeline Groovy 语法 的相关文章

随机推荐

  • 第3讲 进程间通信

    文章目录 3 1 简介3 2 互联网协议的API3 3 外部数据表示和编码3 4 组播通信3 5 网络虚拟化 xff1a 覆盖网络 3 1 简介 UDP的应用程序接口提供了消息传递 xff08 Message Passing xff09 抽
  • C语言--在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums xff0c 和一个目标值 target 找出给定目标值在数组中的开始位置和结束位置 你的算法时间复杂度必须是 O log n 级别 如果数组中不存在目标值
  • [随笔]初步了解 Levenshtein Distance (Edit Distance) 编辑距离,字符相似度算法

    前几天在CSDN的论坛看到一个需要判断两个字符串之间相差多少个字符的帖子 之前有了解过有相应的算法来计算这个差异 但是没有深入的去了解 刚好趁这个时机了解了一下 Levenshtein Distance Edit Distance 编辑距离
  • 别人在忙挖矿,阿里工程师却悄悄用区块链搞了件大事!

    阿里妹导读 xff1a 当阿里技术遇见区块链 xff0c 会碰撞出什么火花呢 xff1f 天猫进出口技术团队运用区块链技术 xff0c 让每一个进口商品都有了唯一的 身份证 背景 全球溯源计划已成为天猫国际现阶段着重开展实行的战略性方针 x
  • SVM深入理解&人脸特征提取

    目录 一 SVM深入理解1 SVM算法2 重做例子代码 二 人脸特征提取1 采集人脸信息 绘制68个特征点2 给人脸绘制一幅墨镜 三 总结四 参考文献 一 SVM深入理解 1 SVM算法 支持向量机 xff08 support vector
  • 传统优化方法:枚举法、启发式算法和搜索算法

    1 枚举法 枚举出可行解集合内的所有可行解 xff0c 以求出精确最优解 对于连续函数 xff0c 该方法要求先对其进行离散化处理 xff0c 这样就可能因离散处理而永远达不到最优解 当枚举空间比较大时 xff0c 该方法的求解效率比较低
  • Android图形系统的分析与移植--七、双缓冲framebuffer的实现

    1 实现原理 在基本的FrameBuffer已经实现的基础上 xff0c 需要实现的是与Android原本模拟器所使用的goldfish FrameBuffer之间的区别 比较一下不难发现 xff0c 从以下及方面着手 xff1a 1 修改
  • Qt 读写XML文件

    目录 1 常用方法 2 示例 2 1 写文件 2 2 读文件 Qt 对 XML 的读写操作 1 简介 使用XML模块 xff0c 在 pro文件中添加 QT 43 61 xml xff0c 并加如相应的头文件 include lt QtXm
  • 苏嵌15 16.11.16

    Makefile中常用的基本函数 1 subst subset 参数1 参数2 参数3 把参数3中的1替换成参数2 返回被替换的参数3 2 patsubst patsubset 模式参数 参数1 参数2 把参数2中复合模式参数的单词替换成参
  • 用自己的单目&双目相机在ROS 下实现双目ORB_SLAM2

    用自己的双目相机在ROS 下实现双目 ORB SLAM2 参考博客 ROS下单目 SLAM https blog csdn net goding learning article details 52950993 配置ROS 下的 ORB
  • 【Linux】Ubuntu 18.04安装aptitude命令

    在ubuntu18 04 下通过如下命令进行aptitude命令的安装 xff0c span class token function sudo span span class token function apt get span spa
  • 卡尔曼滤波(Kalman Filter)原理理解和测试

    Kalman Filter学原理学习 1 Kalman Filter 历史 Kalman滤波器的历史 xff0c 最早要追溯到17世纪 xff0c Roger Cotes开始研究最小均方问题 但由于缺少实际案例的支撑 xff08 那个时候哪
  • ROS与开发板入门教程-树莓派3源码安装Turtlebot(ubuntu mate 16.04+kinetic+Turtlebot)

    ROS与开发板入门教程 树莓派3源码安装Turtlebot ubuntu mate 16 04 43 kinetic 43 Turtlebot ROS与开发板入门教程 树莓派3源码安装Turtlebot ubuntu mate16 04 4
  • Linux下Node.js和NPM安装和配置

    目录 前言 1 安装Nodejs和NPM 2 NPM的配置 3 nodejs的基本使用 3 1 搭建简易后端服务器 4 npm的基本使用 4 1 搭建vue 2 0开发环境 前言 Nodejs简介 Node js是一个基于Chrome V8
  • 年轻人,你为什么要来阿里搞技术?

    阿里妹导读 xff1a 刚刚毕业的年轻技术人 xff0c 为何会选择阿里巴巴 xff1f 也许 xff0c 因为这里是学术和实践充分融合的实验场 xff0c 也许是因为在这里理论的确可以改变生活 xff0c 也许只是为了感受在西湖畔写代码的
  • C语言字符数组与字符串的使用及加结束符‘\0‘的问题

    1 字符数组的定义与初始化 字符数组的初始化 xff0c 最容易理解的方式就是逐个字符赋给数组中各元素 char str 10 61 I a m h a p p y 即把10个字符分别赋给str 0 到str 9 10个元素 如果花括号中提
  • 追求技术之路 - 那些陪伴我的书籍

    如今已经在广州一家嵌入式公司实习 xff0c 分享大学里度过的一些书籍 xff0c 有些还没读完 xff0c 个人比较喜欢经典书籍 xff0c 研读起来就有种奇妙的感觉 xff0c 比起人与人之间的复杂的关系 xff0c 书籍带给我的感觉很
  • 中断,异常,系统调用,进程切换时的堆栈变化和寄存器保存

    1 中断 xff0c 异常 xff0c 系统调用相同 xff1a CPU自动压入 xff1a ss 运行级别提升时需切换堆栈 xff0c 因此多压入用户态的栈段ss xff0c esp 运行级别提升时需切换堆栈 xff0c 因此多压入用户态
  • Pipeline 核心语法

    常用开发工具 选择任意pipeline类型的作业 xff0c 点击 流水线语法 即可进入pipeline开发工具页面 1 片段生成器 流水线代码片段生成器 xff0c 非常好用 xff0c 在这里可以找到每个插件以及Jenkins内置的方法
  • Pipeline Groovy 语法

    Groovy是一种功能强大 xff0c 可选类型和动态 语言 xff0c 支持Java平台 旨在提高开发人员的生产力得益于简洁 xff0c 熟悉且简单易学的语法 可以与任何Java程序顺利集成 xff0c 并立即为您的应用程序提供强大的功能