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,或掃描下面的二維碼添加關注:

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