<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gradle</id>
	<title>Gradle - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gradle"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gradle&amp;action=history"/>
	<updated>2026-05-20T22:22:11Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Gradle&amp;diff=2379526&amp;oldid=prev</id>
		<title>imported&gt;Invisigoth67: form</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gradle&amp;diff=2379526&amp;oldid=prev"/>
		<updated>2025-05-28T05:41:13Z</updated>

		<summary type="html">&lt;p&gt;form&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
|Name                  = &lt;br /&gt;
|Logo                  = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|Screenshot            = &lt;br /&gt;
|Beschreibung          = &lt;br /&gt;
|Maintainer            = Gradle Inc.&lt;br /&gt;
|Hersteller            = &lt;br /&gt;
|Erscheinungsjahr      = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVersion       = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVersionFreigabeDatum = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVorabVersion  = &lt;br /&gt;
|AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
|Betriebssystem        = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|Programmiersprache    = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|Kategorie             = [[Erstellungsprozess|Build-Management]]-Tool&lt;br /&gt;
|Lizenz                = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|Deutsch               = &lt;br /&gt;
|Website               = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
|Dateien               = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gradle&amp;#039;&amp;#039;&amp;#039; ist ein auf [[Java (Programmiersprache)|Java]] basierendes [[Erstellungsprozess|Build-Management]]-Automatisierungs-Tool, vergleichbar mit [[Apache Ant]] und [[Apache Maven]]. Gradle nutzt eine auf [[Groovy]] basierende [[domänenspezifische Sprache]] (DSL) zur Beschreibung der zu bauenden Projekte. Im Gegensatz zu Maven-Projektdefinitionen (&amp;lt;code&amp;gt;pom.xml&amp;lt;/code&amp;gt;) sind Gradle-Skripte direkt ausführbarer Code.&lt;br /&gt;
&lt;br /&gt;
Gradle wurde für Builds von [[Softwaresystem]]en entworfen, welche aus einer Vielzahl von Projekten bestehen. Basierend auf der Philosophie „Erwarte das Unerwartete“ wurde versucht, das in Maven etablierte „build-by-convention“-Prinzip (eine Variante von „[[Konvention vor Konfiguration]]“) mit der Flexibilität von Ant zusammenzubringen.&lt;br /&gt;
&lt;br /&gt;
Builds umfangreicher Projekte können sehr viel Zeit in Anspruch nehmen. Darum unterstützt Gradle sowohl inkrementelle als auch parallel ablaufende Build-Prozesse. Erstere ermöglichen es, dass nur die Teile einer Software gebaut werden, die verändert wurden oder auf veränderten Teilen beruhen, zweiteres ermöglicht es, dass bestimmte Tasks beim Build (beispielsweise die Tests) parallel auf mehreren [[Prozessor|CPUs]] oder Rechnern laufen. Damit lässt sich eine wesentlich höhere Geschwindigkeit des Erstellprozesses erreichen.&lt;br /&gt;
&lt;br /&gt;
Gradle wird von einigen bekannten [[Framework]]s für deren Build eingesetzt – darunter [[Hibernate (Framework)|Hibernate]], [[Grails]], Groovy sowie [[Spring (Framework)|Spring Integration]] und [[Spring (Framework)|Spring Security]].&amp;lt;ref&amp;gt;[http://www.gradle.org/ Gradle Homepage]&amp;lt;/ref&amp;gt; Seit Mitte 2013 hinzugekommen ist das [[Android (Betriebssystem)|Android]]-System. Seitdem wird das Tool vor allem zur Unterstützung zum Bau sogenannter „nativer“ Systeme ausgebaut, welche nicht auf der Java-Plattform basieren. Unterstützt werden hier die Programmiersprachen C++, C, [[Objective-C]] und Assembler.&lt;br /&gt;
&lt;br /&gt;
== Konzeption und Plugin-Architektur ==&lt;br /&gt;
Gradles Build-Konzept übernimmt die von Maven eingeführten Standardkonventionen („convention over configuration“) für das Verzeichnislayout der Projektquellen sowie die üblichen Phasen für den Bau eines (Java-)Projekts (Validieren, Kompilieren, Testausführung, Archiv-Erstellung und Report-Generierung, Verteilung). Die Build-Datei kann daher minimal ausfallen und bei einem simplen Java-Projekt aus einer einzigen Zeile (&amp;lt;code style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;apply plugin: &amp;#039;java&amp;#039;&amp;lt;/code&amp;gt;) bestehen. Ebenso übernimmt Gradle weitgehend das Maven-Konzept des Managements der Abhängigkeiten eines Projekts von anderen Projekten oder Fremdbibliotheken. Gradle kann sich hierbei auf die weitverbreiteten Maven Repositories (lokale, Unternehmens- und Internet-Repositories) stützen. Alternativ kann der Anwender aber auch auf [[Apache Ivy|Ivy]]-Repositories zurückgreifen.&lt;br /&gt;
&lt;br /&gt;
Ähnlich wie Maven besteht Gradle aus einem abstrakten Kern und einer Vielzahl von Plug-ins und ist durch diese Struktur vielfältig erweiterbar. Selbst die [[Implementierung]] des Java-Builds basiert auf einem Plugin für Java. Mit dieser Architektur bietet Gradle die Möglichkeit, Buildprozesse für beliebige Software-Plattformen bewerkstelligen zu können, und liefert dem Anwender die Möglichkeit, seine „nicht-konventionellen“ Vorstellungen dem Tool beizubringen. Gradle liefert von Hause aus Plug-ins mit, die neben Java-Projekten Groovy-, [[Scala (Programmiersprache)|Scala]]- und [[C++]]- Projekte bauen können. Daneben wird der Build von [[Jakarta EE|Java Enterprise]] Archiven (WAR, EAR) unterstützt. Weitere Plug-ins erlauben die Überwachung der [[Softwarequalität]] (beispielsweise [[FindBugs]], [[PMD (Software)|PMD]], [[Checkstyle]]) durch automatisierte Checks und Generierung entsprechender Reports.&lt;br /&gt;
&lt;br /&gt;
Die mit Gradle mitgelieferten Plug-ins sind zwar hauptsächlich für die Entwicklung und das Deployment von Java-, Groovy- und Scala-Projekten gemacht, es kann aber auch für andere Programmiersprachen und Workflows eingesetzt werden. Seit der Entscheidung des Android-Teams für Gradle als Build-System wird von den Entwicklern hauptsächlich die Unterstützung eines Buildmodells für native Programmierumgebungen vorangetrieben.&lt;br /&gt;
&lt;br /&gt;
== Gradle DSL ==&lt;br /&gt;
Im Gegensatz zu den Konventionen von Apache Maven und dessen XML-Deklarationen arbeitet der Anwender mit Gradles [[Domänenspezifische Sprache|Domänenspezifischer Sprache]] (&amp;#039;&amp;#039;domain-specific language&amp;#039;&amp;#039;, kurz &amp;#039;&amp;#039;DSL)&amp;#039;&amp;#039;, die er –&amp;amp;nbsp;da eine Gradle-Build-Datei immer ein Groovy-Skript darstellt&amp;amp;nbsp;– erweitern oder in den Standardeigenschaften ändern kann. Ebenso kann er mit Groovy-Code eigene Build-Änderungen schreiben oder vordefinierte Standards überschreiben und eigenen Belangen anpassen.&lt;br /&gt;
Der Gradle-Anwender kann beide Stile verwenden: den deklarativen, auf Standardkonventionen beruhenden Ansatz von Maven und den eher imperativen Ansatz von Ant, bei dem der Anwender aber auch alles im Detail definieren muss.&lt;br /&gt;
&lt;br /&gt;
Der Anwender ist auf Basis dieser DSL-Sprache nicht gezwungen, zuerst einmal Groovy lernen zu müssen, bevor er sich an Gradle-Buildskripte heranwagt.&lt;br /&gt;
&lt;br /&gt;
Seit Gradle 5.0 wird zusätzlich eine [[Kotlin (Programmiersprache)|Kotlin]] DSL als Alternative zur Groovy DSL angeboten; diese erlaubt insbesondere eine verbesserte [[Autovervollständigung]] in den Entwicklungsumgebungen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=heise online |url=https://www.heise.de/developer/meldung/Gradle-5-0-unterstuetzt-Java-11-4237817.html |titel=Gradle 5.0 unterstützt Java 11 |datum=2018-12-03 |sprache=de |abruf=2021-06-24}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://docs.gradle.org/current/userguide/kotlin_dsl.html |titel=Gradle Kotlin DSL Primer |werk=Gradle User Manual |abruf=2021-06-24}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Der Gradle-Build ==&lt;br /&gt;
Gradle kennt zwei Hauptphasen der Buildverarbeitung, die immer durchlaufen werden: Konfiguration und Ausführung. Während des Konfigurations-Zyklus wird die gesamte Build-Definition durchlaufen, um den Abhängigkeitsgraphen (DAG) zu erzeugen, der die Reihenfolge aller abzuarbeitenden Schritte enthält. Im zweiten Teil wird dieser Graph für die gewünschten Tasks durchlaufen. Sowohl die Konfiguration als auch die Ausführung sind dem Anwender durch eine offene [[Programmierschnittstelle|API]] zugänglich.&lt;br /&gt;
&lt;br /&gt;
Der Buildprozess, der durch den Task-Graphen beschrieben wird, besteht aus einer Abfolge von Tasks, die hierarchisch voneinander abhängen, und wo ein Nachfolger nur ausgeführt wird, wenn seine Vorgänger erfolgreich durchlaufen wurden. So wird beispielsweise die Task ‚test‘ nur ausgeführt, wenn zuvor die Tasks ‚compile‘, ‚process-resources‘, ‚classes‘, ‚testCompile‘ ohne Fehler durchlaufen wurden.&lt;br /&gt;
&lt;br /&gt;
=== Build-Dateien ===&lt;br /&gt;
Gradle nutzt für einen einfachen Build hauptsächlich drei benutzerdefinierte Dateien:&lt;br /&gt;
* &amp;lt;code&amp;gt;build.gradle&amp;lt;/code&amp;gt; – die auf der Gradle-DSL beruhende Definition des Builds mit allen Tasks und Abhängigkeiten eines Projekts (ein Multiprojekt hat pro Projekt eine solche Build-Datei, die durch Vererbung der Eigenschaften von ihrem „Vater“-Buildskript kurz gehalten werden können).&lt;br /&gt;
* &amp;lt;code&amp;gt;settings.gradle&amp;lt;/code&amp;gt; (optional) – bei einem Multiprojekt werden hier die teilnehmenden Unterprojekte festgelegt.&lt;br /&gt;
* &amp;lt;code&amp;gt;gradle.properties&amp;lt;/code&amp;gt; (optional) – eine Liste von Properties, die für die projektspezifische Gradle-Initialisierung eines Builds gültig sind.&lt;br /&gt;
&lt;br /&gt;
Gradle-Skripte können unmittelbar Groovy-Code enthalten oder durch eine Groovy-Klasse implementiert werden. Alternativ lassen sie sich als Build-Abhängigkeit aus einem Maven-Repository laden.&lt;br /&gt;
&lt;br /&gt;
=== Einfache Beispiele für die Datei „build.gradle“ ===&lt;br /&gt;
Das einfachste Buildskript für ein Java-Projekt sieht so aus:&amp;lt;ref&amp;gt;{{Internetquelle |url=https://docs.gradle.org/current/userguide/java_plugin.html |titel=The Java Plugin |werk=Gradle User Manual |abruf=2021-06-24}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
apply plugin: &amp;#039;java&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für die Definition einer eigenen Task:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
task hello &amp;lt;&amp;lt; {&lt;br /&gt;
    println &amp;#039;Dies ist der Hello-Task&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Task kann über die Kommandozeile aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ gradle hello&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IDE-Unterstützung ==&lt;br /&gt;
Für viele [[Integrierte Entwicklungsumgebung]]en gibt es Gradle-Plug-ins, darunter [[NetBeans]], [[IntelliJ IDEA]] und [[Eclipse (IDE)|Eclipse]]. Alternativ können über Gradle-Plug-ins Eclipse- und IDEA-Projektdateien erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
== Weitere Details ==&lt;br /&gt;
Apache-Ant-Builds können von Gradle abgelöst werden, indem die &amp;lt;code&amp;gt;build.xml&amp;lt;/code&amp;gt;-Dateien nach Gradle importiert werden. Auch können Ant-Tasks direkt aus der DSL aufgerufen werden. Ebenso kann Gradle Artefakte in Apache-Maven-Repositories sowohl als Abhängigkeiten konsumieren als auch Artefakte dort publizieren. Weiterhin werden Apache-Ivy-Repositories von Gradle unterstützt. Mittels des &amp;#039;&amp;#039;Build Init Plugin&amp;#039;&amp;#039; können Maven-Projekte nach Gradle konvertiert werden.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://docs.gradle.org/current/userguide/build_init_plugin.html |titel=Build Init Plugin |werk=Gradle User Manual |abruf=2021-06-24}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Namensherkunft ==&lt;br /&gt;
Laut Gründer und CEO &amp;#039;&amp;#039;Hans Dockter&amp;#039;&amp;#039; wollte dieser das Projekt ursprünglich „Cradle“ (deutsch: „Wiege“) nennen, entschied sich dann aber für ein neues, eindeutiges Wort, indem er den Anfangsbuchstaben durch das „G“ von &amp;#039;&amp;#039;Groovy&amp;#039;&amp;#039; ersetzte.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://discuss.gradle.org/t/why-is-gradle-called-gradle/3226/2 |titel=why is gradle called gradle |werk=Gradle Forums |abruf=2025-05-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur |Autor=Tim Berglund, Matthew [J.] McCullough |Titel=Building and Testing with Gradle |Verlag=O’Reilly Media |Ort=Sebastopol CA |Jahr=2011 |ISBN=978-1-4493-0463-8}}&lt;br /&gt;
* {{Literatur|Autor=Joachim Baumann| Titel=Gradle: Ein kompakter Einstieg in das Build-Management-System| Verlag=d.punkt.verlag| Jahr=2013| ISBN=978-3-86490-049-5}}&lt;br /&gt;
* {{Literatur|Autor=Benjamin Muschko| Titel=Gradle in Action| Verlag=Manning Publications| Jahr=2014| ISBN=978-1-61729-130-2}}&lt;br /&gt;
* Hubert Klein Ikkink: &amp;#039;&amp;#039;Gradle Effective Implementation Guide.&amp;#039;&amp;#039; Packt Publishing, 2012, ISBN 1-84951-810-6&lt;br /&gt;
* Etienne Studer: &amp;#039;&amp;#039;Ein Einstieg in Gradle für Java-Entwickler&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Gradle wird den Build schon schaukeln&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Enterprise Gradle&amp;#039;&amp;#039;, dreiteilige Serie über Gradle im &amp;#039;&amp;#039;Java Magazin&amp;#039;&amp;#039; 1 bis 3/2011&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://gradle.org/ Website des Projekts]&lt;br /&gt;
** [http://gradle.org/documentation Dokumentation]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java-Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Java-Programm]]&lt;br /&gt;
[[Kategorie:Build-Management]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Invisigoth67</name></author>
	</entry>
</feed>