DevOps系列之Jenkins pipeline-07Groovy基础语法1

1.Groovy介绍

参考文档:Groovy Language Documentation

The Apache Groovy programming language - The Groovy Development Kit

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

 2. 安装Groovy

  • 下载安装包(依赖于JDK,需要先安装JDK)
  • 解压安装包 获取安装包bin目录
  • 设置环境变量写入/etc/profile文件

下载地址:The Apache Groovy programming language - Download

 上传至服务器并解压到/usr/local/groovy-4.0.1目录,配置环境变量。

vim /etc/profile
# 添加以下信息
export GROOVY_HOME=/usr/local/groovy-4.0.1/
export PATH=$PATH:$GROOVY_HOME/bin

source /etc/profile
# 执行有输出控制台表示配置成功
groovysh

直接使用jenkins中的命令行也可以进行groovy命令的执行。

 执行groovy命令,点击运行后查看执行结果。

3. Groovy语法

3.1 注释

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

3.2 数据类型

3.2.1 字符串string

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

string的一些常见操作:

//定义一个字符串类型变量name
String name = 'zhangsan'
String name = "zhangsan"

//定义一个变量包含多行内容
String str = """ 
jenkins
gitlab
devops
"""
println(str)

//字符串分割操作
String branchName = "release-1.1.1"
println(branchName.split("-"))
println(branchName.split("-")[-1])
println("${env.JOB_NAME}".split("-")[0])

//是否包含release字符串
println(branchName.contains("release"))

//字符串的长度
println(branchName.size())
println(branchName.length())

//使用变量作为值
def message = "hello ${name}"
println(message)
println(message.toString())

//获取元素索引值
println(branchName.indexOf("-"))

//判断字符串以DEV结尾
String jobName = "test-service_DEV"
println(jobName.endsWith("DEV"))

//字符串增添操作
String log = "error: xxxxxx aa"
println(log.minus("a"))
println(log - "a")
println(log.plus("aa"))
println(log + "aa")

//字符串反转
String nums = "1234567"
println(nums.reverse())

3.2.2 列表list

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

list的一些常用操作:

// list
// 定义一个list
def mylist = [1,2,3,4,4,"devops"]
println(mylist)

// list的元素增删
println(mylist + "jenkins")
println(mylist - "devops")
println(mylist << "java")
def newlist = mylist.add("gitlab")
println(newlist)


// 判断元素是否为空
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))

3.2.3 映射map

map的表示方式:types = [“maven”:“mvn”] [:]

map的一些常用操作:

// 定义map

def mytools = [ "mvn": "/usr/local/maven",
				"gradle": "/usr/local/gradle" ]


// 根据key获取value
println(mytools["mvn"])
println(mytools["gradle"])

// 根据key重新赋值
mytools["mvn"] = "/opt/local/maven"
println(mytools)

mytools.gradle = "/opt/local/gradle"
println(mytools)

// 获取key的value
println(mytools.key("mvn"))
println(mytools.get("mvn"))

// 判断map是否包含某个key或者value
println(mytools.containsKey("gradle"))
println(mytools.containsValue("/usr/local/gradle"))

// 返回map的key 列表
println(mytools.keySet())

// 根据key删除元素
println(mytools.remove("mvn"))
println(mytools)

猜你喜欢

转载自blog.csdn.net/lee_yanyi/article/details/124332225
今日推荐