jenkins2 -pipeline 常用groovy脚本
jenkins2的核心是pipeline,pipeline的核心是groovy。
那有一些基础的groovy是必须经常使用的,如变量赋值,变量引用,打印变量,输出字符,任务调用,循环判断等。
Groovy变量
注意:在jenkins里面配置Groovy变量时,注意进行测试,不要同Groovy自带的变量冲突!!!
既然是脚本语言,Groovy的变量也被设计成为了类似的弱类型,实际上Groovy同时支持强类型变量和“弱”类型变量,强类型变量拥有自己的类型,而“弱”类型变量则全部会被编译为Object类型,从代码的角度上,Groovy的变量无需声明类型了:
// groovy可以使用类型确定的变量或常量 String s1 = "Hello "
print s1 final String s2 = "World"
println s2 // 利用def关键字可以定义可变类型的变量或常量 def s3 = "Welcome "
print s3 // 对于可变类型,即随时可以改变其类型,赋予不同的量 s3 = 123 // 此时str3被赋予了整型量,所以其类型变为Integer类型
println s3 s3 += 100 // 整型的str3和整型相加,结果是整型223
println s3 s3 = true // str3目前是boolean类型
println ("Ok " + s3) // 对于局部变量,甚至可以不使用def关键字来定义
s4 = "Good job"
println s4 // 对于数值类型,有如下规则 int n1 = 10
n2 = n1 / 3
println n2 // 对于n1为整数时, 10 / 3的结果并不是整数,这说明常量n2并不是整数 int n3 = n1 / 3 // 明确定义n3为整数后,相除的结果为整数
println n3 n2 = n1.intdiv(3)
println n2 // intdiv用于进行整除 n2 = n1.power(2) // 求平方 groovy方法
println n2 n2 = n1 ** 2 // 求平方的groovy语法
println n2 n1 = Math.sqrt(n2) // 求开方 java方法
println n1
从上面的代码可以看到,Groovy支持有类型的变量,例如String s;也支持无类型的变量,例如def s,相当于Java中的Object s;对于无类型的变量,甚至可以不写def关键字。
final关键字依然作为常量标识,这一点和Java相同。
最后注意一点,Groovy中没有Java中的值类型简单对象,所有的对象都是引用类型对象,例如定义def n = 10,n的类型应该是Integer类型而不是int类型;即便定义了int n = 100,n的类型依然是Integer类型;如果定义了def n = 12.34,则注意,n的类型是BigDecimal类型而不是Double类型,只有显式定义double n = 12.34,n的类型才明确为Double类型(依旧不是double类型)
对于基本算术运算符,Groovy增加了**运算符,表示求幂,x ** y表示求x的y次方;
分支结构语句
Groovy的结构化语句仍旧是三种:顺序结构、分支结构和循环结构,其中分支结构和循环结构增加了很多意想不到的功能,先看分支结构:
// groovy中if条件分支的新规定 // groovy中,非0的数值可以表示true
int num = 0
if (num) {
println "True"
} else {
println "False"
} println (++num ? "True" : "False") if (!!num) { // !!运算符可以将num转化为boolean类型
println "num=${num}为${!!num}"
}
println "" // 引用为null时,表示false
Object o = null
if (o) {
println "True"
} else {
println "False"
}
o = new Date()
if (o) {
println "True"
} else {
println "False"
}
println "" // 字符串为""时,表示false
String s = ""
if (s) {
println "True"
} else {
println "False"
}
s += "hello"
if (s) {
println "True"
} else {
println "False"
}
println "" // 集合为空时,表示False
ArrayList array = new ArrayList()
if (array) {
println "True"
} else {
println "False"
}
array.add(100)
if (array) {
println "True"
} else {
println "False"
}
println "" // groovy中switch选择分支的新规定 // switch对字符串类型的支持 print "Please input your words: "
s = new BufferedReader(new InputStreamReader(System.in)).readLine() switch (s) {
case "how are you":
println "fine, thank you"
break;
case "how do you do":
println "how do you do too"
break;
default:
println "nice to meet you"
} // switch对集合和范围的支持
n = new Random().nextInt(101)
print "you got ${n} point, "
switch (n) {
case [98, 99, 100]: // n为98, 99, 100这三个数字时
println "very good!!"
break;
case 90 .. 97: // n为90-97之间时
println "nice job!!"
break;
case 70 .. 89: // n为70-89之间时
println "good"
break;
case 60 .. 79: // n为60-79之间时
println "can be better"
break;
case {it > 0 && it < 60}: // n比0大且比60小时
println "too bad"
break;
case 0: // n为0时
println "nothing to say"
break;
}
首先,Groovy对boolean类型放宽了限制:
- 常量true和false分别表示“真”和“假”;
- null表示false,非null表示true;
- 空字符串""表示false,非空字符串表示true;
- 0表示false,非0表示true;
- 空集合表示false,非空集合表示true;
jenkins2 -pipeline 常用groovy脚本的更多相关文章
- jenkins2 pipeline高级
jenkins2 pipeline里groovy的高级用法.翻译自:https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL. ...
- jenkins2 groovy脚本参考
使用plugin生成groovy脚本,或者参考已有的groovy脚本. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.co ...
- jenkins2 pipeline介绍
文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd 什么是jenkins2的pipeline? ...
- jenkins2 pipeline 语法快速参考
jenkins2 pipeline中常用的语法快速参考. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciand ...
- jenkins2 pipeline插件的10个最佳实践
jenkins pipeline的10个最佳实践. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd ...
- jenkins2 pipeline入门
本文通过简单的pipeline的实例和详细的讲解,能够学习基本pipeline的groovy用法,然后开始实现自己的pipeline job. 翻译和修改自:https://github.com/je ...
- JAVA嵌入运行Groovy脚本
摘自: http://shift-alt-ctrl.iteye.com/blog/1938238 . 最近设计一个数据统计系统,系统中上百种数据统计维度,而且这些数据统计的指标可能随时会调整.如果基于 ...
- soapUI系列之—-02 Groovy脚本常用方法
------Groovy脚本常用方法 1. 设置参数值:setPropertyValuea. 设置 project level property//set to project level prope ...
- Groovy脚本基础全攻略
1 背景 Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意 ...
随机推荐
- threading多线程总结
threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类: ...
- (转)Windows下tail命令工具(转)
因为随笔无转载按钮,先说明原文地址是: Windows 下 tail 查看日志命令工具分享 使用方法: 下载后解压,把tail.exe 复制到 目录:C:\Windows\System32 下 文件下 ...
- DNS分析之 dnsdict6 使用方法
基本用法就是: dnsdict6 -d46 -t 10 baidu.com
- git 常用的命令符
1. linux操作命令: touch Filename:创建一个文件: mkdir 文件夹名字:创建一个文件夹: cd pathname:切换磁盘: cd ..:返回上一级: rm Filename ...
- JS获取浏览器类型和版本号
JS获取浏览器类型和版本号,增加了IE11的判断. 2015/7/5更新: 简化代码逻辑 var zbrowser = {} var ua = navigator.userAgent.toLowerC ...
- python可视化--matplotlib
matplotlib在python中一般会与numpy同时出现,解决一些科学计算和数据的可视化问题. matplotlib其实就是matlib在python中的实现,因此不会有太大的难度,而由于pyt ...
- 《JavaScript高级程序设计》笔记二
第二章 在HTML中使用JavaScript 要想把JavaScript放到网页中,就必须涉及到Web的核心语言HTML.向HTML页面中插入JavaScript的主要方法,就是使用<scrip ...
- SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)
(一)为什么选择7z 7z 是一种主流高效的压缩格式,它拥有极高的压缩比.在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式.该格式最初被7-Zip实现并采 ...
- MATLAB命令大全和矩阵操作大全
转载自: http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示在MATLAB中创建矩阵 ...
- jq与原生js实现收起展开效果
jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...