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: def fü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.