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

2. Groovy 基础知识

    [作者:Surpassme]  因为pipeline是基于Groovy的,所以还是需要一些基础的Groovy知识的。

2.1 Groovy 简介

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

2.2 Groovy 环境

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

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

    [作者:Surpassme]  Groovy 支持的工具如下所示:

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

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

  • 使用Groovysh,按以下操作即可:

  • 使用GroovyConsole,按以下操作即可:

2.4 Groovy 基础知识

2.4.1 注释

  • 1.单行注释

    [作者:Surpassme]  单行注释使用//,示例如下所示:

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

    [作者:Surpassme]  多行注释以/*开始,以*/结束。示例如下所示:

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

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

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

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

#!/usr/bin/env groovy

println "Hello,Surpass"

2.4.2 关键字

    [作者:Surpassme]  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 常规命名

    [作者:Surpassme]  在Groovy中,变量命名通常遵循如下规则:

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

    以下为合法的变量命名:

def surpass
def surpass8
def _suprass
def $surpass

    以下为非法的变更命名:

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

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

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 变量赋值

    [作者:Surpassme]  在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 多变量赋值

    [作者:Surpassme]  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

原文地址:https://www.jianshu.com/p/870a6921f7e3

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章