Neue Version des Build Tools erschienen

Gradle 4.5 vorgestellt: Schnellere Up-To-Date-Erkennung und neue Compiler-Argumente für Java

Hartmut Schlosser, Marcel Richters

© Shutterstock / bogdanhoda

Gradle hat die Version 4.5 seines beliebten Build-Tools vorgestellt. Zu den Highlights gehören eine beschleunigte Up-to-Date-Erkennung, Verbesserungen des Build-Caches sowie reichhaltige Java-Compiler-Argumente. Wir schauen uns die Neuerungen im Detail an.

In Gradle 4.5 ging es vor allem um Performance. Eine effizientere inkrementelle Kompilierung sorgt im Zusammenspiel mit einer überarbeiteten Task-Selektion und Dependency-Auflösung für schnellere Up-to-date-Checks. Diese Verbesserungen sollen sich vor allem bei Projekten bemerkbar machen, die viele Konstanten aufweisen, wie es beispielsweise bei Android der Fall ist. Das Gradle-Team spricht hier von Geschwindigkeitsgewinnen von bis zu 30%.

C/C++-Entwickler dürfen sich über Verbesserungen des Build-Caches freuen. Das Caching für die C/C++-Kompilierung wird nun als stabil bezeichnet. Der inkrementelle C/C++-Compiler führt zudem feingranulare Analysen der Abhängigkeiten zwischen Quellcode-Dateien und Header-Files durch, was sich in einer geringeren Anzahl von zu kompilierenden Files sowie in einer höheren Cache-Hitrate niederschlagen soll.

Für Java-Entwickler ist die Möglichkeit hinzugekommen, den Annotation-Prozessor als ein CompilerArgumentProvider zu modellieren. Dadurch können komplexe Inputs und Outputs deklarativ bestimmt werden, was bisher manuell durch Aufrufe wie compileJava.inputs.file(…) erledigt werden musste.

Das Gradle-Team demonstriert die neuen Compiler-Argumente in folgendem Beispiel. Hier wird ein Annotation-Prozessor modelliert, der ein Input-File erfordert und ein Output-File generiert:

class MyAnnotationProcessor implements CompilerArgumentProvider {
        @InputFile
        @PathSensitivite(NONE)
        File inputFile

        @OutputFile
        File outputFile

        MyAnnotationProcessor(File inputFile, File outputFile) {
            this.inputFile = inputFile
            this.outputFile = outputFile
        }

        @Override
        List<String> asArguments() {
            [
                "-AinputFile=${inputFile.absolutePath}",
                "-AoutputFile=${outputFile.absolutePath}"
            ]
        }
    }

    compileJava.options.compilerArgumentProviders << new MyAnnotationProcessor(inputFile, outputFile)

Dieser Ansatz ist nicht auf Annotation-Prozessoren beschränkt, sondern kann genutzt werden, um dem Compiler beliebige Kommandozeilen-Argumente zu übergeben.

Daneben gibt es weitere Verbesserungen in Gradle 4.5 wie die Integration der Kotlin DSL 0.14, das Caching von ANTLR Tasks sowie Erweiterungen des Provider APIs. Auch die Dokumentation wurde überarbeitet, und insgesamt 22 Bugfixes wurden durchgeführt.

Potentielle Breaking Changes beziehen sich auf ältere Versionen von Maven sowie auf zwei überladene ValidateTaskProperties.setOutputFile()-Methoden. So produziert das maven-publish-Plug-in jetzt vollständigere Versionen der maven-metadata.xml. Einige ältere Versionen von Maven können diese Metadaten eventuell nicht verarbeiten, wie Gradle erklärt. Die Methoden werden durch automatisch generierte Setter ersetzt, wenn von einem Build-Script auf eine Task zugegriffen wird.

Detaillierte Informationen zur aktuellsten Version von Gradle – inklusive aller Änderungen, Bugfixes und bekannter Fehler – finden sich auf dem Gradle-Blog.

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Marcel Richters
Marcel Richters
Marcel hat Soziologie an der Goethe-Universität in Frankfurt am Main studiert und danach als E-Commerce-Manager gearbeitet. Seit Februar 2018 unterstützt er das Team von JAXenter als Redakteur. Daneben arbeitet er als freier Journalist in der Mainmetropole.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: