Einführung in Build-Werkzeuge – Anwendungsentwickler-Podcast #97
Um Werkzeuge, die dem Entwickler beim Bauen seiner Software viel
Arbeit abnehmen, geht es in der siebenundneunzigsten Episode des
Anwendungsentwickler-Podcasts. Inhalt Die Episode ist wie meine
Einführung in die Versionsverwaltung mit Git in mehrere Fr...
43 Minuten
Podcast
Podcaster
Beschreibung
vor 8 Jahren
Um Werkzeuge, die dem Entwickler beim Bauen seiner Software viel
Arbeit abnehmen, geht es in der siebenundneunzigsten Episode des
Anwendungsentwickler-Podcasts.
Inhalt
Die Episode ist wie meine Einführung in die Versionsverwaltung
mit Git in mehrere Fragen aufgeteilt. Los geht es mit allgemeinen
Fragen zu Build-Werkzeugen. Dann folgen Fragen zum Einsatz im
eigenen Unternehmen. Und zuletzt gehen auf die Details von Gradle
ein.
Allgemein
Die folgenden Fragen sind unabhängig vom konkreten
Build-Werkzeug.
Was ist ein Build?
Der Vorgang, der alle Aktionen umfasst, die zum Erstellen
einer lauffähigen und deploybaren Software aus Basisartefakten
wie Sourcecode nötig sind.
Was macht ein Build-Werkzeug?
Mit einem Build-Werkzeug können alle notwendigen
Build-Schritte automatisiert werden.
Was sind die Vorteile eines Build-Werkzeugs?
Die Software kann automatisiert und damit schneller und
verlässlicher gebaut werden.
Kopfmonopole werden abgebaut.
„Works on my machine“ wird verhindert.
Ein automatischer Build ist die Grundlage für Continuous
Integration/Delivery/Deployment.
Was ist ein Build-Script?
In einem Build-Script werden die notwendigen Build-Schritte
definiert. Es wird vom Build-Werkzeug wie Programmcode
ausgeführt.
Warum sollten Build-Scripts versioniert werden?
Letztlich sind die Build-Scripts ausführbarer „Code“, der
ganz normal mit versioniert werden sollte. Allein, um Änderungen
am Build mit Änderungen im Code zu synchronisieren und später
auch noch frühere Builds nachstellen zu können.
Welche Aktionen kann ein Build-Werkzeug bei einem Build
durchführen?
Abhängigkeiten auflösen (z.B. fremde JARs oder DLLs
einbinden)
Kompilieren des Codes
Testen (mit Analyse der Code Coverage)
Statische Code-Analyse durchführen (z.B. Code-Style,
bestimmte Bugs)
Paketieren der Anwendung (z.B. als JAR, DLL)
Snapshots der Software erzeugen und in ein
Artefakt-Repository einstellen
Deployment der Anwendung auf ein Zielsystem
Maschinenunabhängig Projekte für die jeweilige IDE erstellen
Minification von Artefakten (z.B. CSS und JavaScript)
Obfuscation zum Schutz des Quellcodes
Technische Dokumentation der Software erzeugen
Alles, was man sonst noch so manuell tun müsste
Wie hängt das Build-Werkzeug mit Continuous Integration
zusammen?
Ohne automatischen Build ist kein CI möglich!
Welche bekannten Build-Werkzeuge gibt es für Java, .NET, Ruby
und C?
Java: Ant, Maven, Gradle
.NET: MSBuild
Ruby: Rake
C: make
Dein Unternehmen
Diese Fragen solltest du dir stellen, wenn du in deinem
Unternehmen mit einem Build-Werkzeug arbeiten willst/musst.
Welche konkreten Build-Werkzeuge setzt dein Unternehmen ein?
Was musst du tun, um dieser auf deiner Maschine nutzen zu können?
Welche Konventionen musst du ggfs. einhalten, um sie in deinem
Projekt nutzen zu können?
z.B. Ordnerstruktur des Projekts, Benennung der Komponenten.
Wo findest du Vorlagen für eigene Build-Scripts? Welche
Dateien gehören zum Build-Script deines Unternehmens und was sind
ihre jeweiligen Aufgaben? Welche Ordner und Dateien deines Projekts
solltest du von der Versionierung ausschließen? Gradle
Zum Schluss kommen noch ein paar einleitende Fragen zum konkreten
Werkzeug Gradle.
Was ist Gradle?
Ein Build-Werkzeug für Java, das inzwischen z.B. der Standard
für Android-Projekte ist.
Was sind die Vorteile von Gradle gegenüber Maven und Ant?
Gradle verwendet eine flexible und mächtige DSL für die
Build-Scripts und kann sowohl deklarativ, als auch imperativ
verwendet werden.
Was ist der Gradle Wrapper?
Eine Möglichkeit, um Gradle in der passenden Version für das
aktuelle Build-Script automatisch herunterzuladen und damit den
Build durchzuführen.
Mit welchem Befehl startest du einen normalen Build mit
Gradle?
gradle build
Mit welchem Befehl räumst du dein Projektverzeichnis mit
Gradle auf?
gradle clean
Mit welchem Befehl erzeugst du ein importierbares
Eclipse-Projekt mit Gradle?
gradle eclipse
Literaturempfehlungen
Wenn du tiefer in Gradle einsteigen möchtest (was natürlich nur
sinnvoll ist, wenn du es selbst einsetzt), empfehle ich dir
dieses Buch von Joachim Baumann. Es hat uns beim Erstellen einer
Vorlage für unsere eigenen Build-Scripts sehr geholfen.
*
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Erstellungsprozess – Wikipedia
Java Quickstart – Gradle User Guide Version 3.4.1
The Gradle build system- Tutorial
Weitere Episoden
5 Minuten
vor 4 Wochen
11 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
10 Minuten
vor 5 Monaten
In Podcasts werben
Kommentare (0)