Gradle
eBook - ePub

Gradle

Ein kompakter Einstieg in das Build-Management-System

Joachim Baumann

Compartir libro
  1. 260 páginas
  2. German
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Gradle

Ein kompakter Einstieg in das Build-Management-System

Joachim Baumann

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

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.

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Gradle un PDF/ePUB en línea?
Sí, puedes acceder a Gradle de Joachim Baumann en formato PDF o ePUB, así como a otros libros populares de Informatica y Elaborazione visiva dei dati. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Editorial
dpunkt
Año
2013
ISBN
9783864913372
Edición
1
Categoría
Informatica

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-...

Índice