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