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

Ausbau der Container Security durch Qualys

Strategische Akquisition von Layered Insight

Ausbau der Container Security durch Qualys

Der Security-Spezialist Qualys übernimmt Layered Insight und sichert sich damit zusätzliches Know-how im Bereich Container-Sicherheit: Bessere Sichtbarkeit und ein Laufzeit-Anwendungsschutz für containerisierte und serverlose Workloads. lesen

Die beliebtesten DevOps-Anbieter

IT-Awards 2018

Die beliebtesten DevOps-Anbieter

Wenn Softwareentwicklung, IT-Betrieb und Qualitätssicherung unter einen Hut gebracht werden sollen, lautet das Zauberwort DevOps. Dieser Ansatz zur Prozessverbesserung sorgt durch gemeinsame Methoden, Abläufe und Tools für eine effiziente Zusammenarbeit dieser Bereiche. Im Ergebnis führt das zu schnellerer Anwendungsentwicklung, höherer Qualität und optimiertem Teamwork. lesen

Entwickler bauen auf Java 8 und IntelliJ IDEA

JVM Ecosystem Report 2018 von Snyk

Entwickler bauen auf Java 8 und IntelliJ IDEA

Das Java Development Kit, kurz JDK, hat mit dem Update auf Java 9 fundamentale Änderungen erfahren. Dies dürfte ein Grund dafür sein, dass Java 8 nach wie vor die verbreitetste Plattform für Anwendungen in der Produktivumgebung ist. lesen

Jenkins-Community entwickelt AWS-SAM-Plugin

Nativer Support von Serverless Application Model

Jenkins-Community entwickelt AWS-SAM-Plugin

Für eine bessere Integration mit AWS SAM haben die Kontributoren des Jenkins-Projekts haben ein entsprechendes Plugin entwickelt. So können Entwickler Serverless-Funktionen aus bestehenden Jenkins-Pipeline-Prozessen lesen und implementieren. lesen

Bereitstellung mit AWS Elastic Beanstalk

PaaS Application Management in der AWS Cloud

Bereitstellung mit AWS Elastic Beanstalk

„Wir würden gerne unsere bestehenden Web-Anwendungen in AWS ausrollen und skalieren. Welche PaaS-Lösungen existieren für die Bereitstellung von Anwendungen in der AWS Cloud?“ lesen

AWS Boto3 installieren und konfigurieren

AWS-Ressourcen mit Python bereitstellen, Teil 1

AWS Boto3 installieren und konfigurieren

AWS-Nutzer können Ressourcen in der AWS-Public-Cloud auf verschiedenen Wegen provisionieren. Die programmatische Variante ist vor allem für Entwickler und in DevOps-Szenarien erste Wahl. Zu den zahleichen unterstützten SDKs gehört auch Boto3 für Python. lesen

Agile und sichere Embedded-Software-Entwicklung

Statische Code-Analyse in CI/CD-Prozessen

Agile und sichere Embedded-Software-Entwicklung

Innerhalb von CI/CD-Prozessen, sprich Continuous Integration und Deployment, spielt Qualitätssicherung eine zentrale Rolle. immerhin sollen diese agilen Methoden besseren Code und leichtere Fehlerbeseitigung gewährleisten. Besonders im Embedded-Umfeld kommt es dabei darauf an, die Entwickler frühzeitig auf Fehler oder Abweichungen von gesetzten Standards hinzuweisen. lesen

Linux unter Windows nutzen

WSL – das Windows-Subsystem for Linux

Linux unter Windows nutzen

Microsoft sieht wie andere Hersteller das Potenzial der Open-Source-Community und konzentriert sich nicht mehr ausschließlich auf das eigene Windows-Betriebssystem. Linux als Subsystem unter Windows ist in dieser Hinsicht das neueste Feature. Das ist nicht nur für Entwickler praktisch. lesen

UI-Versionskontrollsystem von Applitools

Benutzeroberflächen per Commit aktualisieren

UI-Versionskontrollsystem von Applitools

Applitools hat ein UI Version Control System veröffentlicht. Mit diesem können Entwickler rückverfolgen, wie frühere Versionen einer Anwendung ausgesehen haben, ohne die ältere Version erneut zu erstellen. 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)