Jenkins实践指南-02-Groovy基础知识01

2. Groovy 基础知识

    因为pipeline是基于Groovy的,所以还是需要一些基础的Groovy知识的。

2.1 Groovy 简介

    Groovy 是Apache旗下的一门基于JVM平台的动态/敏捷编程语言。语法简洁灵活,开发效率也比较高,且能够与Java语言无缝对接,可以在写Groovy时语法按Java的语法继续写,也能在Java中调用Groovy脚本,均可以很好运行。

2.2 Groovy 环境

    Groovy是基于JVM的,所以安装Groovy,需要准备好JDK环境。这里假设大家已经提前准备好JDK环境,仅讲述Groovy环境的准备。操作步骤如下所示:

  • 1.访问Groovy 官网,下载基本的安装包https://groovy.apache.org/download.html
  • 2.将下载的Groovy SDK包解压到指定目录,本机解压目录为
D:\Program Files\Groovy
  • 3.设置环境,主要环境变量如下所示:
:: 新增以下环境变量
GROOVY_HOME="D:\Program Files\Groovy"
:: Path追加以下环境变量
%GROOVY_HOME%\bin
  • 4.重新打开一个新的窗口,验证配置是否成功
C:\Users\Surpass>groovy -version
Groovy Version: 4.0.5 JVM: 17.0.1 Vendor: Oracle Corporation OS: Windows 10
  • 若能正常输出版本信息,则代表安装成功。
  • Jenkins 2.x 目前使用的Groovy 版本为2.x,基础的语法应该是一样的,大家可以根据自己的实际情况选择对应的版本学习

2.3 Groovy IDE

    Groovy 支持的工具如下所示:

0201 GroovyIDE.png

以下信息来自于Groovy 官网:http://groovy-lang.org/ides.html

    除了以下的IDE工具,也可以使用自带的工具来进行简单的代码编写,如下所示:

  • 使用Groovysh,按以下操作即可:
0202 Groovysh.png
  • 使用GroovyConsole,按以下操作即可:
0203 GroovyConsole.png

2.4 Groovy 基础知识

2.4.1 注释

  • 1.单行注释

    单行注释使用//,示例如下所示:

// 单行注释示例
println "Hello,Surpass"
println "Hello,Surpass"  // 单行注释示例
  • 2.多行注释

    多行注释以/*开始,以*/结束。示例如下所示:

/* 多行注释示例
   多行注释示例 */
println "Hello,Surpass" /* 多行注释示例
                       多行注释示例 */
println 1 /* one */ + 2 /* two*/
  • 3.文档注释

    文档注释与多行注释非常像,主要区别是以/**开始,以*/结束,中间每一行以*开头。示例如下所示:

/**
*文档注释
*/
class Person {
    /** 姓名*/
    String name="Surpass"
    /**
     * 创建一个吃东西的方法
     *
     * @param 食物的名称
     * @return 喜欢吃的食物的消息
     */
    String eat(String foodName){
        return "Hello ${name},I like eat ${foodName}"
    }
}
  • 4. Shebang 行

    与Shell类似,有一单行注释比较特殊,称为为Shebang,在Groovy脚本中,以#!开始的行。示例如下所示:

#!/usr/bin/env groovy

println "Hello,Surpass"

2.4.2 关键字

    Groovy 主要关键字如下所示:

abstract        assert      break       case        catch       class
continue        def         default     else        finally     for
if              instanceof  switch      throw       try         while
class           import      package     return      in          as

2.4.3 变量

2.4.3.1 变量命名

2.4.3.1.1 常规命名

    在Groovy中,变量命名通常遵循如下规则:

  • 通常以字母$下划线开头,但不能以数字开头

    以下为合法的变量命名:

def surpass
def surpass8
def _suprass
def $surpass

    以下为非法的变更命名:

def 8surpass
def hello+surpass
def hello#surpass
2.4.3.1.2 引号命名

    引号命名通常出现.表达式之后,通常应用在一些变量带有特殊字符的命名中。示例如下所示:

def map=[:]
def name="Surpass"
map."my name"="Surpass"
map.'my-name'="Surpass"
map."variable-name-${name}"="Hello ${name}"

assert map."my name"=="Surpass"
assert map.'my-name'=="Surpass"
assert map."variable-name-Surpass"=="Hello Surpass"
println "map is ${map}"

    输出结果如下所示:

map is [my name:Surpass, my-name:Surpass, variable-name-Surpass:Hello Surpass]

2.4.3.2 变量赋值

    在Groovy中主要的变量赋值方式如下所示:

2.4.3.2.1 常规赋值

    常规赋值,示例如下所示:

// 定义并赋值
def name="Surpass"
// 先定义再赋值
def age
age=28
println "name is ${name}\nage is ${age}"
2.4.3.2.2 多变量赋值

    Groovy支持一次性给多个变量赋值,示例如下所示:

// 方式一
def (name,age,loc)=["Surpass",28,"Shanghai"]
println "name is ${name},age is ${age},loc is ${loc}"  // name is Surpass,age is 28,loc is Shanghai
// 方式二
def hello="Hello,Surpass,Welcome to Shanghai"
def (_,name,welcome)=hello.split(",")
println "name is ${name},welocme is ${welcome}" // name is Surpass,welocme is Welcome to Shanghai
// 方式三
def (name,age)=["Surpass",28,"Shanghai","Wuhan"]
println "name is ${name},age is ${age}" // name is Surpass,age is 28

你可能感兴趣的:(Jenkins实践指南-02-Groovy基础知识01)