Groovy基础语法

本模块主要学习Groovy基础语法,掌握基础语法便于在流水线中数据处理😀

目录


简介

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

images

安装

  • 下载安装包(先安装JDK)
  • 解压安装包 获取安装包bin目录
  • 写入/etc/profile文件
  1. export GROOVY_HOME=xxx
  2. export PATH=$PATH:$GROOVY_HOME/bin
  3. source /etc/profile

images

数据类型

字符串string

字符串表示: 单引号、双引号、三引号

  1. contains() 是否包含特定内容 返回true false
  2. size() length() 字符串数量大小长度
  3. toString() 转换成string类型
  4. indexOf() 元素的索引
  5. endsWith() 是否指定字符结尾
  6. minus() plus() 去掉、增加字符串
  7. reverse() 反向排序
  8. substring(1,2) 字符串的指定索引开始的子字符串
  9. toUpperCase() toLowerCase() 字符串大小写转换
  10. split() 字符串分割 默认空格分割 返回列表

列表list

列表的表示: [] [1,2,3,4]

  1. + - += -= 元素增加减少
  2. isEmpty() 判断add() << 添加元素
  3. 是否为空
  4. intersect([2,3]) disjoint([1]) 取交集、判断是否有交集
  5. flatten() 合并嵌套的列表
  6. unique() 去重
  7. reverse() sort() 反转 升序
  8. count() 元素个数
  9. join() 将元素按照参数链接
  10. sum() min() max() 求和 最小值 最大值
  11. contains() 包含特定元素
  12. remove(2) removeAll()
  13. each{} 遍历

映射map

types = [“maven”:”mvn”]

  1. size() map大小
  2. [’key’] .key get() 获取value
  3. isEmpty() 是否为空
  4. containKey() 是否包含key
  5. containValue() 是否包含指定的value
  6. keySet() 生成key的列表
  7. each{} 遍历map
  8. remove(‘a‘) 删除元素(k-v
  9. 练习
  10. groovy:000> [:]
  11. ===> [:]
  12. groovy:000> [1:2]
  13. ===> [1:2]
  14. groovy:000> [1:2][1]
  15. ===> 2
  16. groovy:000> [1:2,3:4,5:6]
  17. ===> [1:2, 3:4, 5:6]
  18. groovy:000> [1:2,3:4,5:6].keySet()
  19. ===> [1, 3, 5]
  20. groovy:000> [1:2,3:4,5:6].values()
  21. ===> [2, 4, 6]
  22. groovy:000> [1:2,3:4,5:6] + [7:8]
  23. ===> [1:2, 3:4, 5:6, 7:8]
  24. groovy:000> [1:2,3:4,5:6] - [7:8]
  25. ===> [1:2, 3:4, 5:6]

条件语句

if语句

在Jenkinsfile中可用于条件判断。

  1. if (表达式) {
  2. //xxxx
  3. } else if(表达式2) {
  4. //xxxxx
  5. } else {
  6. //
  7. }
  8. 练习
  9. groovy:000> buildType = "maven"
  10. ===> maven
  11. groovy:000> if (buildType == "maven"){
  12. groovy:001> println("This is a maven project!")
  13. groovy:002> } else if (buildType == "gradle"){
  14. groovy:003> println("This is a gradle project!")
  15. groovy:004> } else {
  16. groovy:005> println("Project Type Error!")
  17. groovy:006> }

switch语句

  1. switch("${buildType}"){
  2. case maven":
  3. //xxxx
  4. break;
  5. case ”ant":
  6. //xxxx
  7. break;
  8. default:
  9. //xxxx
  10. }
  11. 练习
  12. switch("${buildType}"){
  13. case 'maven':
  14. println("This is a maven project !")
  15. break;
  16. ;;
  17. case 'gradle':
  18. println("This is a gradle projects!")
  19. break;
  20. ;;
  21. default:
  22. println("Project Type Error!")
  23. ;;
  24. }

循环语句

for循环语句

  1. test = [1,2,3]
  2. for ( i in test){
  3. ///xxxxxx
  4. break;
  5. }
  6. //代码
  7. langs = ['java','python','groovy']
  8. for ( lang in langs ){
  9. if (lang == "java"){
  10. println("lang error in java")
  11. }else {
  12. println("lang is ${lang}")
  13. }
  14. }

while循环语句

  1. while(true){
  2. //xxxx
  3. }

函数

在共享库中每个类中的方法。

  1. def PrintMes(info){
  2. println(info)
  3. return info
  4. }
  5. response = PrintMes("DevOps")
  6. println(response)