Groovy 是一種 動態、面向對象的編程語言,運行在 Java 虛擬機(JVM)上,并與 Java 高度兼容。你可以把它理解為“Java 的簡潔版 + 動態特性 + 腳本語言的靈活性”。
🧠 Groovy 的核心特點
特性 | 說明 |
---|---|
? 與 Java 高度兼容 | 可以直接調用 Java 庫、繼承 Java 類、實現 Java 接口 |
? 語法簡潔 | 不需要寫分號、類型可以省略、閉包支持好 |
? 動態類型支持 | 變量可以不聲明類型,更像 Python 或 JavaScript |
? 內置 DSL(領域專用語言)支持 | 特別適合用于構建配置語言、腳本工具、構建系統 |
? 腳本執行能力強 | 可以像 shell 腳本一樣執行 .groovy 文件 |
? 支持閉包、元編程 | 提供類似 JavaScript 的函數式特性和元編程能力 |
🔧 常見用途
-
Jenkins 腳本(流水線)
-
Jenkins 使用 Groovy 來編寫 CI/CD 的 Pipeline 腳本。
-
例如:
pipeline {agent anystages {stage('Build') {steps {echo 'Building...'}}} }
-
-
Gradle 構建工具
-
Gradle 的構建腳本默認使用 Groovy(也支持 Kotlin DSL)
-
例如:
dependencies {implementation 'org.springframework.boot:spring-boot-starter-web' }
-
-
自動化測試(如 Spock 框架)
- Groovy 結合 Spock 框架進行 BDD 風格的測試開發
-
快速編寫 JVM 腳本
- 比 Java 更短、更靈活,適合快速編寫小程序或腳本工具
🧾 簡單對比 Groovy vs Java
// Java
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
for (String s : list) {System.out.println(s);
}
// Groovy
def list = ["hello", "world"]
list.each { println it }
🚀 安裝和運行
如果你有 Java 環境,可以直接運行 Groovy 腳本:
groovy hello.groovy
或者使用 Groovy Shell:
groovysh