Definition „Code Build“

Was ist ein Build?

| Autor / Redakteur: LineFeed / Stephan Augsten

Der Begriff „Build“ meint in der Software-Entwicklung sowohl den Prozess des Zusammenfügens von Programmteilen als auch die fertige Software-Version.
Der Begriff „Build“ meint in der Software-Entwicklung sowohl den Prozess des Zusammenfügens von Programmteilen als auch die fertige Software-Version. (Bild: Alexas_Fotos - Pixabay.com)

Als Build bezeichnet die Softwareentwicklung einerseits den gesamten Prozess der Erzeugung einer kompletten, eigenständig lauffähigen Software und andererseits das Ergebnis dieses Prozesses: das oder die ausführbaren Programme einschließlich aller eventuell benötigten Ressourcen.

Abgesehen von einfachsten Programmen besteht jede Software aus mehreren Quelldateien, die in der Regel vor der Ausführung in ein lauffähiges Konstrukt konvertiert werden müssen. Hier kommt der Begriff „Build“ zum Einsatz. Wie eingangs erwähnt kann damit sowohl der Prozess als auch ein spezifischer Softwarestand gemeint sein, der durch die Version aller beteiligten Quellen sowie gegebenenfalls dynamisch beim Build-Prozess spezifizierter Optionen bestimmt ist.

Abgesehen von einer quelloffenen Software deren Build-Prozess der Endnutzer selbst durchführt ist die Kennzeichnung jedes einzelnen Builds durch eine eindeutige Build-Nummer üblich. Sie kann aus einer einfachen, fortlaufenden Nummerierung bestehen, enthält aber häufig auch die Versionsnummer der zugrundeliegenden Quellen.

Ein Beispiel für die komplexe Form ist die von Google für Android verwendete Build-Nummer. Das Nummernschema beginnt mit einem Buchstaben, der dem Initial des Codenamens der Android-Version entspricht, zum Beispiel N für Nougat. Die weitere Struktur ändert sich zwar mit der Version Oreo, der Inhalt bleibt aber gleich. An zweiter Stelle steht ein Buchstabencode, der den Versionsstand des Quelltexts kennzeichnet. Darauf folgt eine Datumsangabe und an letzter Stelle ein Code, der für jeden Build mit gleicher Version und gleichem Datum sequentiell hochgezählt wird.

Build-Tools automatisieren den Prozess

Der Vorgang des Erstellens lauffähiger Softwarepakete wird meist durch Build-Tools automatisiert, die zugleich die Konsistenz der Rahmenbedingungen zwischen verschiedenen Builds sicherstellen. Ein weit verbreitetes Beispiel für die grundlegenden Eigenschaften von Build-Werkzeugen ist das aus dem Unix-Umfeld stammende Programm „make“. Es liest eine Konfigurationsdatei, die üblicherweise den Namen „Makefile“ trägt und Anweisungen für die einzelnen Phasen eines Build-Prozesses enthält.

Jeder Schritt kann von Bedingungen abhängig gemacht werden, wie zum Beispiel der Existenz oder Aktualität bestimmter Dateien. Das ermöglicht einerseits sicherzustellen, dass alle für einen Build nötigen Schritte in der richtigen Reihenfolge durchgeführt werden. Andererseits lässt sich dadurch überflüssiger Aufwand vermeiden, wenn bei einem weiteren Durchlauf Teilergebnisse des vorangegangenen Build-Prozesses noch aktuell sind.

Wo beginnt und endet ein Build?

Ein Build beinhaltet insbesondere das Kompilieren der Quellen, sofern diese in einer Programmiersprache geschrieben sind, die einen solchen Schritt erfordert (wie zum Beispiel C) oder erlaubt (wie Java oder Python). Zum Build-Prozess gehört allgemein aber auch das Bereitstellen aktueller und „sauberer“ Quellen.

Diese Aufgaben kann ein Build-Tool ebenfalls automatisieren, einerseits etwa durch das Auschecken aus einem Versionskontrollsystem oder den Download eines Quelltextarchivs von einem FTP-Server. Andererseits dient beim Beispiel „make“ üblicherweise das Target „clean“ dazu, die Ergebnisse und Zwischenergebnisse eines vorangegangenen Build-Prozesses zu beseitigen.

Als aktuelle Quelle kann in diesem Fall aber auch der Stand einer älteren Version gemeint sein, wenn beispielsweise aufgrund eines Softwarefehlers ein Rollback notwendig ist. Der Build-Prozess endet entweder mit dem Zusammenpacken der erzeugten Dateien für den Export oder der lokalen Installation, falls er unmittelbar auf dem Zielsystem ausgeführt wurde.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Instant-Apps auf Basis von Android App Bundles

Android Studio kennzeichnet Feature-Plug-in als veraltet

Instant-Apps auf Basis von Android App Bundles

Im Zuge der App-Bundle-Implementierung in Android Studio hat Google eine Änderung bei der Erstellung von Instant Apps angekündigt: Sowohl das Feature-Plug-in als auch das Instant-App-Plug-in gelten als veraltet und werden künftig entsprechend gekennzeichnet. lesen

Die Umstellung auf DevSecOps

Palo Alto Networks über Security und Container

Die Umstellung auf DevSecOps

Container-technologien sind für Unternehmen eine gute Gelegenheit, die Sicherheitsstrategie anzupassen: DevSecOps bringt Development- und Security-Teams näher zusammen, zeigt Palo Alto Networks sich zuversichtlich. Der Lösungsanbieter hat sich eingehender damit beschäftigt. lesen

Entwickeln von Apps für neue Windows-10-Version

Preview Build 18356 für Windows 10 SDK verfügbar

Entwickeln von Apps für neue Windows-10-Version

Microsoft hat ein neues Preview Build für Windows 10 bereitgestellt, das mit dem neuen Windows 10 Software Development Kit arbeiten kann. Die neue Version bietet verschiedene Fehlerbehebungen und neue Funktionen. lesen

SecDevOps – Sichere, agile Softwareentwicklung

Sicherheit sollte nicht an letzter Stelle stehen

SecDevOps – Sichere, agile Softwareentwicklung

Gegenüber linearen Entwicklungsmethoden wie dem Wasserfallmodell bietet agile Softwareentwicklung einige Vorteile. Bei der Sicherheit gibt es dabei aber einige Knackpunkte, die Janosch Maier von Crashtest Security genauer dargelegt hat. lesen

Apple gibt Swift 5 offiziell frei

Kleinere Anwendungen, mehr Sicherheit

Apple gibt Swift 5 offiziell frei

Apple hat mit Swift 5 die neueste Version der hauseigenen Programmiersprache freigegeben. Das Application Binary Interface gilt nun als stabil, so dass die Swift-Runtime nun in sämtlichen Apple-Betriebssystemen enthalten ist. lesen

Wie ein DevOps-Team zum NewOps-Team wird

T-Shaped Teams, neue Datenquellen, intelligente Orchestrierung

Wie ein DevOps-Team zum NewOps-Team wird

Wie sieht die Zukunft der DevOps aus? Eine zunehmende Spezialisierung, größere Relevanz von Daten und mehr IT-Orchestrierung prägen DevOps-Abteilungen im Jahr 2019. lesen

Java 12 – die neuen Funktionen im Überblick

Bessere Garbage Collectors, Mikro-Benchmarks und mehr

Java 12 – die neuen Funktionen im Überblick

Mit Java 12 stellt Oracle auch neue Funktionen zur Verfügung. Mit Switch Expressions und anderen Neuerungen werden Erweiterungen integriert, welche auch die Syntax der Sprache ändern. lesen

DynamoDB-Zugriff über AWS SDK for Java

AWS-Ressourcen mit Java erstellen und verwalten, Teil 3

DynamoDB-Zugriff über AWS SDK for Java

Bei einem NoSQL-Service wie DynamoDB ist das Abfragen bzw. Lesen und Schreiben von Daten über die RestAPI ohnehin der Normalfall. Dementsprechend einfach gestaltet sich der Zugriff über das AWS SDK for Java. lesen

5 häufige DevOps-Fehler und wie man sie vermeidet

Konfiguration, Bereitstellung, Organisation

5 häufige DevOps-Fehler und wie man sie vermeidet

Continuous Integration und Continuous Deployment helfen dabei, die Softwareentwicklung effizienter zu gestalten. Im Zuge von DevOps-Strategien werden die beiden Prinzipien kombiniert. Fünf gängige Fehler lassen sich dabei von Vornherein vermeiden. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45233624 / Definitionen)