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環境的準備,操作步驟如下所示:
- 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
? ? [作者: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,或掃描下面的二維碼添加關注:

作者: Surpassme
來源: http://www.jianshu.com/u/28161b7c9995/
http://www.cnblogs.com/surpassme/
宣告:本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出 原文鏈接 ,否則保留追究法律責任的權利,如有問題,可發送郵件 聯系,讓我們尊重原創者著作權,共同營造良好的IT朋友圈,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/539335.html
標籤:其他
