Einführung in Build-Werkzeuge – Anwendungsentwickler-Podcast #97

IT-Berufe-Podcast - A podcast by Stefan Macke - Mondays

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?

Visit the podcast's native language site