Gradle - Übersicht

"Gradle is an open source build automation system"

Ant und Maven waren auf dem JAVA-Markt sehr erfolgreich. Ant war das erste Build-Tool, das im Jahr 2000 veröffentlicht wurde. Es basiert auf einer prozeduralen Programmieridee. Später wird es durch die Möglichkeit verbessert, Plug-Ins und das Abhängigkeitsmanagement über das Netzwerk mithilfe von Apache-IVY zu akzeptieren. Der Hauptnachteil ist XML als Format zum Schreiben von Build-Skripten. Hierarchisch zu sein ist nicht gut für die prozedurale Programmierung, und XML wird in der Regel unüberschaubar groß.

Maven wird im Jahr 2004 eingeführt. Es kommt mit viel Verbesserung als ANT. Es ändert seine Struktur und verwendet weiterhin XML zum Schreiben von Build-Spezifikationen. Maven verlässt sich auf die Konventionen und kann die Abhängigkeiten über das Netzwerk herunterladen. Der Hauptvorteil von Maven ist sein Lebenszyklus. Während Sie kontinuierlich denselben Lebenszyklus für mehrere Projekte verfolgen. Dies ist mit Kosten für Flexibilität verbunden. Maven hat auch einige Probleme beim Abhängigkeitsmanagement. Konflikte zwischen Versionen derselben Bibliothek werden nicht gut behandelt, und komplexe angepasste Build-Skripte sind in Maven tatsächlich schwieriger zu schreiben als in ANT.

Schließlich kam Gradle 2012 ins Bild. Gradle bietet einige effiziente Funktionen beider Tools.

Eigenschaften von Gradle

Im Folgenden finden Sie eine Liste der Funktionen, die Gradle bietet.

  • Declarative builds and build-by-convention- Gradle ist mit einer separaten domänenspezifischen Sprache (DSL) verfügbar, die auf der Sprache Groovy basiert. Gradle bietet deklarative Sprachelemente. Diese Elemente bieten auch Unterstützung für Java, Groovy, OSGI, Web und Scala.

  • Language for dependency based programming - Die deklarative Sprache befindet sich oben auf einem Allzweck-Aufgabendiagramm, das Sie in Ihrem Build vollständig nutzen können.

  • Structure your build- Mit Gradle können Sie endlich gemeinsame Designprinzipien auf Ihren Build anwenden. Sie erhalten eine perfekte Struktur für den Bau, sodass Sie einen gut strukturierten und leicht zu wartenden, nachvollziehbaren Bau entwerfen können.

  • Deep API - Mit dieser API können Sie das Konfigurations- und Ausführungsverhalten im Kern überwachen und anpassen.

  • Gradle scales - Gradle kann die Produktivität problemlos steigern, von einfachen und einzelnen Projekt-Builds bis hin zu riesigen Enterprise-Multi-Projekt-Builds.

  • Multi-project builds- Gradle unterstützt Builds für mehrere Projekte und teilweise Builds. Wenn Sie ein Teilprojekt erstellen, kümmert sich Gradle um die Erstellung aller Teilprojekte, von denen es abhängt.

  • Different ways to manage your builds - Gradle unterstützt verschiedene Strategien zum Verwalten Ihrer Abhängigkeiten.

  • Gradle is the first build integration tool- Gradle wird für Ihre ANT-Aufgaben, Maven- und Lvy-Repository-Infrastruktur zum Veröffentlichen und Abrufen von Abhängigkeiten vollständig unterstützt. Gradle bietet auch einen Konverter zum Umwandeln einer Maven pom.xml in ein Gradle-Skript.

  • Ease of migration- Gradle kann sich leicht an jede Struktur anpassen, die Sie haben. Daher können Sie Ihren Gradle-Build immer in demselben Zweig entwickeln, in dem Sie ein Live-Skript erstellen können.

  • Gradle Wrapper- Mit Gradle Wrapper können Sie Gradle-Builds auf Computern ausführen, auf denen Gradle nicht installiert ist. Dies ist nützlich für die kontinuierliche Integration von Servern.

  • Free open source - Gradle ist ein Open Source-Projekt und unter der Apache Software License (ASL) lizenziert.

  • Groovy- Gradles Build-Skript ist in Groovy geschrieben. Das gesamte Design von Gradle ist darauf ausgerichtet, als Sprache und nicht als starrer Rahmen verwendet zu werden. Mit Groovy können Sie Ihr eigenes Skript mit einigen Abstraktionen schreiben. Die gesamte Gradle-API ist vollständig in der Sprache Groovy konzipiert.

Warum Groovy?

Die vollständige Gradle-API wurde in der Sprache Groovy entwickelt. Dies ist ein Vorteil eines internen DSL gegenüber XML. Gradle ist im Kern ein Allzweck-Build-Tool. Der Schwerpunkt liegt auf Java-Projekten. In solchen Projekten sind die Teammitglieder mit Java sehr vertraut und es ist besser, dass ein Build für alle Teammitglieder so transparent wie möglich ist.

Sprachen wie Python, Groovy oder Ruby eignen sich besser für das Build-Framework. Groovy wurde ausgewählt, weil es bei weitem die größte Transparenz für Benutzer von Java bietet. Die Basissyntax von Groovy ist dieselbe wie bei Java. Darüber hinaus bietet Groovy noch viel mehr.