Groovy ist eine dynamische Sprache für die Java Virtual Machine (JVM), die sich nahtlos in Java-Projekte integriert. Sie wird für Skripting, Build-Automation (Gradle), Tests und schnelle Prototypen genutzt — ohne die strikte Typsyntax von Java.
Erste Schritte
Groovy-Code wird in Dateien mit der Endung .groovy gespeichert und mit dem Interpreter groovy ausgeführt. Alternativ kompiliert man Groovy wie Java in Bytecode, der auf jeder JVM läuft.
groovy hallo.groovy # Skript direkt ausführen
groovyc Hallo.groovy # zu .class-Dateien kompilieren
groovy -e "println 'Hallo'" # Einzeiler auf der Kommandozeile
Variablen und Typen
Groovy kennt sowohl def (dynamischer Typ) als auch explizite Typen. Strings mit doppelten Anführungszeichen unterstützen Interpolation mit ${}.
def name = "Welt"
String fest = "Java"
println "Hallo ${name}" // Hallo Welt
println fest.getClass().name // java.lang.String
Listen und Maps
def liste = [1, 2, 3]
liste << 4 // Element anhängen
println liste.sum() // 10
def map = [name: "Devon", ort: "Lübeck"]
println map.name // Devon
Kontrollstrukturen
for (i in 1..5) { print "$i " } // 1 2 3 4 5
(1..3).each { n -> println n } // Iteration mit Closure
def x = 10
switch (x) {
case 10: println "zehn"; break
default: println "anders"
}
Closures
Closures sind anonyme Funktionen, die als Werte herumgereicht werden können — ein Kernstück von Groovy.
def verdoppeln = { int n -> n * 2 }
println verdoppeln(21) // 42
[1, 2, 3].collect { it * 10 } // [10, 20, 30]
Gradle-Builds
Groovy ist die Standardsprache für build.gradle-Dateien. Ein einfaches Projekt definiert man mit:
plugins {
id 'java'
}
repositories { mavenCentral() }
dependencies {
implementation 'com.google.guava:guava:32.1.3-jre'
}
Praxis-Tipps
- Groovy ist optional typisiert:
deffür Skripte, explizite Typen für große Codebasen. - Groovy-Code ist meist gültiges Java — umgekehrt nicht immer.
- Für schnelle Datenverarbeitung und Tests (z.B. mit Spock) ist Groovy ideal.
Mehr Grundlagen findest du unter Java-Befehle und Scala-Befehle.