Gradle

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
Programmier­sprache 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

  1. http://wiki.gradle.org/display/GRADLE/Gradle+0.9.2+Release+Notes
  2. http://wiki.gradle.org/display/GRADLE/2011/10/25/Gradle+1.0-milestone-5+released
  3. Gradle Homepage

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Gradle — Тип Автоматизация сборки Разработчик Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Ken Sipe Написана на Java, Groovy Операционная система …   Википедия

  • Etna — Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 2001 …   Wikipédia en Français

  • Etna (volcan) — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • Etnea — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • Mongibello — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • Mons Gibel Utlamat — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • Monte di Catania — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • ’a muntagna — Etna Pour les articles homonymes, voir Etna (homonymie). Etna L Etna vu depuis Catane en décembre 200 …   Wikipédia en Français

  • List of build automation software — Build automation involves scripting or automating the process of compiling computer source code into binary code. Below is a list of notable tools associated with the build automation process. Contents 1 Make based tools 2 Non Make based tools 3… …   Wikipedia

  • Comparison of Continuous Integration Software — Contents 1 About Continuous Integration Software 2 Comparison 3 See also 4 References About Continuous Integra …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”