- Gradle
-
Gradle Maintainer Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Ken Sipe Aktuelle Version 0.9.2[1]
(4. Februar 2011)Aktuelle Vorabversion 1.0-milestone-5[2]
(25. Oktober 2011)Betriebssystem plattformübergreifend Programmiersprache Java, Groovy Kategorie Build-Management-Tool Lizenz Apache-Lizenz 2.0 www.gradle.org Gradle ist ein auf Java basierendes Build-Management-Tool vergleichbar mit Apache Ant und Apache Maven. Anders als bei diesen Tools wird jedoch keine xml Konfiguration genutzt (build.xml oder pom.xml), sondern eine auf Groovy basierende Domain Specific Language (DSL).
Gradle wurde für Builds von großer Software, welche aus vielen Projekten besteht, entworfen. Derartige Builds können sehr viel Zeit in Anspruch nehmen, darum unterstützt Gradle sowohl inkrementelles als auch nebenläufiges Bauen der Software. Ersteres ermöglicht es, dass nur die Teile einer Software gebaut werden, welche verändert wurden bzw. auf veränderten Teilen beruhen, zweiteres ermöglicht es, dass bestimmte Tasks beim Build (z.B. die Tests) parallel auf mehreren CPUs oder Rechnern laufen. Damit kann mit Gradle eine gegenüber anderen Erstellprozess-Tools wesentlich höhere Geschwindigkeit erreichten.
Gradle wird von einigen bekannten Frameworks für den Build eingesetzt - darunter Hibernate, Grails, Groovy sowie Spring Integration und Spring Security.[3]
Inhaltsverzeichnis
Konzeptionelles
Im Gegensatz zu Apache Maven, welches den gesamten Zyklus der Softwareerstellung abbildet und Apache Ant, bei welchem voneinander abhängige Targets abgearbeitet werden, verwendet Gradle einen direkten azyklischen Graphen (DAG), um die Reihenfolge der Abarbeitung der mit Hilfe der DSL beschriebenen Tasks zu bestimmen. Tasks sind beispielsweise im Java Umfeld Kompilieren, Unit Tests ausführen oder Dokumentation generieren. Diese 'Tasks' sind das einzige Mittel, um Abhängigkeiten zu definieren.
Gradle kennt zwei Lifecyles, die immer durchlaufen werden: Konfiguration und Ausführung. Während des Konfigurations-Zyklus wird die gesamte Build-Definition durchlaufen, und den DAG zu erzeugen, der die Reihenfolge aller Tasks enthält. Im zweiten Teil wird dieser Graph für die gewünschten Tasks durchlaufen.
Gradle nutzt drei Dateien:
- build.gradle - die DSL mit allen Tasks für das Projekt
- settings.gradle (optional) - hier wird das Projekt mit allen vorhandenen Unterprojekten festgelegt
- gradle.properties (optional) - eine Liste von Java Properties, die für das Projekt gültig sind
Die mit Gradle mitgelieferten Plugins sind hauptsächlich für die Entwicklung und das Deployment von Java, Groovy und Scala Projekten gedacht, Gradle kann aber für andere Programmiersprachen und Workflows erweitert werden bzw. wird daran vom Gradle Team gearbeitet.
Für viele Integrierte Entwicklungsumgebungen gibt es Plugins für Gradle, darunter NetBeans, IntelliJ IDEA und Eclipse.
Beispiele
Beispiel für eine Datei build.gradle:
task(hello) { println 'Konfiguration' doLast { println 'Ausführung' } }
Das 'task' kann über Kommandozeile aufgerufen werden:
$ gradle hello
oder interaktiv über die eingebaute Oberfläche
$ gradle --gui
Details
Apache Ant Builds können von Gradle einfach abgelöst werden, build.xml files können importiert werden, oder Ant tasks können direkt aus der DSL aufgerufen werden. Ebenso kann Gradle Artifakte in Apache Maven Repositories als Abhängigkeiten referenzieren, für das Auflösen von Abhängigkeiten wird Apache Ivy genutzt. Gradle Tasks können direkt Groovy Code enthalten, oder in Groovy implementiert sein. Sie können auch als Build-Abhängigkeit aus einem Maven Repository geladen werden.
Literatur
- Matthew McCullough & Tim Berglund: Building and Testing with Gradle O'Reilly, ISBN 9781449304638
- Etienne Studer: Ein Einstieg in Gradle für Java-Entwickler, Gradle wird den Build schon schaukeln und Enterprise Gradle, 3-Teilige Serie über Gradle im Java Magazin 1 bis 3/2011
Weblinks
Einzelnachweise
Kategorien:- Java-Programmierwerkzeug
- Freies Programmierwerkzeug
- Java-Programm
Wikimedia Foundation.