Gradle
eBook - ePub

Gradle

Ein kompakter Einstieg in das Build-Management-System

Joachim Baumann

Buch teilen
  1. 260 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Gradle

Ein kompakter Einstieg in das Build-Management-System

Joachim Baumann

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Gradle ist ein modernes Build-Management-System, das auf Groovy basiert und sich immer mehr zu einer Konkurrenz für bestehende Tools entwickelt. Gradle kann sehr gut auf Spezifika der eigenen Umgebung und der eigenen Probleme angepasst werden und ist in der Lage, auch komplexere Builds mit geringem Aufwand zu unterstützen. Das Buch demonstriert die praktische Verwendung von Gradle in Szenarien unterschiedlicher Komplexität und ermöglicht so einen schnellen Einstieg. Auch komplexe Verwendungen wie in einem Continuous-Build-Szenario werden betrachtet.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Gradle als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Gradle von Joachim Baumann im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatica & Elaborazione visiva dei dati. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Verlag
dpunkt
Jahr
2013
ISBN
9783864913372

1 Einleitung

Das Thema Build-Management gibt es, seit es zu umständlich ist, alle Quelltexte eines Programms von Hand dem Compiler und in Folge dem Linker zu übergeben, um ein Programm oder eine Bibliothek zu erzeugen. Die erste Lösung für das Problem waren Skripte, die systemabhängig waren und damit spezifisch für jede Systemplattform geschrieben werden mussten.

make

Das erste verbreitete Build-Management-Werkzeug
Das erste Build-Management-Werkzeug, das größere Verbreitung erlangte, war das Werkzeug make, das als Teil von Unix mitgeliefert wurde. Dieses verwendete eine Datei (das Makefile), die alle Schritte beschrieb, die zur Erzeugung des Programms nötig waren. Auf jedem System, das über das Programm make verfügte, konnte damit das Makefile ausgeführt werden. Der Erfolg von make war so groß, dass es für fast jede Plattform (inklusive MS Windows) eine Version des Programms gibt.
Was damit jedoch nicht gelöst war, war die Auflösung systemabhängiger Namen von Werkzeugen und Bibliotheken und der Orte, an denen sie auf spezifischen Systemen zu finden waren. Auch systemspezifische Compiler-Optionen wurden nicht erfasst.
Dies führte Anfang der 90er-Jahre zu der Entwicklung und Durchsetzung von weiteren Programmen wie zum Beispiel autoconf oder imake (Teil von X11), die diese systemspezifischen Werte bestimmen und ein systemspezifisches Makefile generieren konnten.

Ant

Als 1995 Java die Bühne betrat, war die Situation einigermaßen stabil, und zu Beginn wurden die zur Verfügung stehenden Werkzeuge zur Übersetzung von Java-Programmen verwendet. Sehr schnell stellte sich allerdings die Frage, ob ein in Java geschriebenes Build-Management-System nicht vorteilhaft sein könnte, da das JDK für die Übersetzung ja ohnehin vorhanden sein musste.
Ant war richtungsweisend für Java-Umgebungen.
Es gab verschiedenste Ansätze im Java-Umfeld, erfolgreich und richtungsweisend war Ant (»Another neat tool«), das eine Beschreibung der Schritte für die Erzeugung des Java-Programms in Form einer XML-Datei akzeptierte (erstes Erscheinen mit der Version 1.1 in 2000). Ant setzte sich sehr schnell für alle Java-basierten Programme durch und machte die Komplexität von make und den zugehörigen Werkzeugen überflüssig. Außerdem konnte Ant durch Extensions zusätzliche Funktionalität erhalten.
Was aber Ant noch fehlte, waren Funktionen wie eine Abhängigkeitsund Versionsverwaltung für Java-Archive oder die Idee eines Build-Prozesses, der aus verschiedenen, klar getrennten Phasen besteht, um die nötigen Schritte zur Erzeugung des Resultats durchzuführen.

Maven

Maven adressiert fehlende Funktionalitäten und Konzepte in Ant.
Diese Hauptpunkte adressiert Maven, das als Build-Management-System sowohl einen Prozess in Form eines Lebenszyklus mit aufeinanderfolgenden Phasen definiert als auch ein ausgefeiltes System zur Verwaltung und Versionierung von Abhängigkeiten (Java-Archiven) hat, die bei Internet-Verbindung automatisch lokal heruntergeladen werden können (Erscheinen der Version 1.0 in 2004). Hierzu stellt Maven ein globales Archiv (das Maven-Repository, siehe [Maven-Repository]) zur Verfügung, in dem seit 2006 so gut wie alle öffentlichen Java-Archive zum Zugriff bereit liegen.
Um die Funktionalität zu erweitern, können Plug-ins für die verschiedenen Phasen registriert werden. Maven führt dann die jeweilige Implementierung in der entsprechenden Phase aus.
Maven verfolgt einen deklarativen Ansatz.
Maven folgt anders als Ant einem deklarativen Paradigma: Anstatt zu sagen, wie etwas gemacht werden soll, reicht es aus zu sagen, was erreicht werden soll. Hierfür wird eine Spezifikation in Form einer XML-Datei verwendet (das POM oder Project Object Model). Damit dies funktioniert, muss es Konventionen geben, die für die Ausführung der Schritte verwendet werden. Ein Beispiel hierfür sind die Orte, an denen bei Maven Quelltexte (src/main/java) und Tests (src/test/java) zu finden sind. Auch Maven bietet die Möglichkeit, die Funktionalität durch Plug-ins zu erweitern, die ihre jeweils eigenen Konventionen mitbringen.
Ein großer Nachteil von Maven ist hierbei, dass sowohl der Prozess als auch die Konventionen sehr rigide sind. Das führt zwar dazu, dass jedes mit Maven aufgesetzte Projekt gleich aussieht, es sorgt aber auch dafür, dass das Build-Management früher oder später mit der Infrastruktur kollidiert.
Um das Problem der Abhängigkeits- und Versionsverwaltung bei Ant zu adressieren, wurde das Werkzeug Ivy implementiert, das seit 2006 ein Apache-Projekt und inzwischen ein Subprojekt von Ant ist.
Wir haben also auf der einen Seite das Werkzeug Ant (zusammen mit Ivy), das sehr große Freiheit, aber keine Unterstützung des Prozesses bietet und eine imperative Beschreibung aller Schritte erfordert.
Auf der anderen Seite haben wir Maven, das einen Prozess definiert und deklarative Beschreibung der Schritte durch eine Menge von Konventionen erlaubt. Dies wird allerdings dadurch erkauft, dass Maven sehr rigide Vorgaben macht, die das Build-Management früher oder später sehr problematisch machen.

Gradle

Gradle ist eine Antwort auf die Schwächen von Ant und Maven.
Eigentlich würden wir uns für das Build-Management ein Werkzeug wünschen, das die Funktionalität von Maven und den deklarativen Ansatz mit der Freiheit von Ant verbindet. Und genau dies tut Gradle.
Gradle bietet einen deklarativen Ansatz mit vernünftigen Konventionen, die leicht zu ändern sind, und durch die Integration von Ivy und Maven-Repositories exzellente Verwaltung der Abhängigkeiten und betrachtet Ant als einen gleichwertigen Partner, der voll integriert ist.
De facto ist jede Build-Datei für Gradle ein Groovy-Skript, das mit den Gradle-spezifischen Befehlen angereichert ist. Dies erlaubt prinzipiell die volle Programmierbarkeit des Build-Skriptes. Dies birgt natürlich die Gefahr, dass das Build-Skript, das eigentlich nur den Build beschreiben soll, durch zu viel Quelltext an Lesbarkeit verliert.
Deshalb sollten größere Teile Quelltext grundsätzlich in Plug-ins ausgelagert werden. Dies wir dadurch unterstützt, dass Plug-ins in Gradle sehr einfach zu schreiben und zu verwenden sind.

1.1 Grundsätzliche Aufgaben eines Build-Management-Werkzeugs

Historisch gesehen war die Aufgabe eines Build-Management-Werkzeugs sehr einfach, nämlich die Übersetzung von Quelltexten in der richtigen Reihenfolge und der darauf folgende Aufruf des Linkers, um ein ausführbares Programm oder eine Bibliothek zu erzeugen.
Funktionalitäten eines modernen Build-...

Inhaltsverzeichnis