23 Gradle

23.1 Einführung

Gradle ist ein automatisiertes Build-System, das auf Groovy basiert und für die Java-Entwicklung verwendet wird. Es bietet eine DSL (Domain Specific Language) für die Beschreibung von Builds.

23.2 Build-Datei

In Gradle-Projekten wird die Build-Logik üblicherweise in einer build.gradle Datei definiert.

apply plugin: 'java'

dependencies {
    implementation 'com.google.guava:guava:30.1-jre'
    testImplementation 'junit:junit:4.13.1'
}

repositories {
    mavenCentral()
}

23.3 Aufgaben und Abhängigkeiten

Gradle verwendet Aufgaben (tasks), die jeweils spezifische Aktionen durchführen.

23.3.1 Beispiel für eine benutzerdefinierte Aufgabe

task customTask {
    doLast {
        println 'Executing custom task.'
    }
}

23.3.2 Ausführung einer Aufgabe

gradle customTask

23.4 Plugins

Gradle bietet eine breite Palette von Plugins, die zusätzliche Funktionen hinzufügen.

23.4.1 Beispiel für die Verwendung des Java-Plugins

apply plugin: 'java'

23.5 Multi-Projekt-Builds

Gradle unterstützt Multi-Projekt-Builds, wobei jedes Subprojekt seine eigene build.gradle Datei haben kann.

23.5.1 Beispiel für ein Root-Projekt

settings.gradle

include 'subproject1'
include 'subproject2'

23.6 Wrapper

Der Gradle Wrapper ermöglicht es, Gradle Builds zu erstellen, ohne Gradle vorab installieren zu müssen.

23.6.1 Wrapper initialisieren

gradle wrapper --gradle-version=6.8

Gradle ist ein flexibles und leistungsfähiges Build-System, das insbesondere für Java-Projekte weit verbreitet ist. Durch seine DSL ermöglicht es eine sehr anpassbare und komplexere Build-Logik im Vergleich zu anderen Systemen wie Maven. Es bietet zahlreiche Plugins und hat den Vorteil, dass es auch Multi-Projekt-Builds effizient handhaben kann.