Starten Sie eine Kompilierung durch Programmierung

In Systemen zur kontinuierlichen Integration wird bei jeder Übermittlung von Code oder stündlich automatisch eine Kompilierung des Quellcodes gestartet. Auf diese Weise können Sie Zusammenführungen auf dem Code Management Server überprüfen.

Ab 4D v19 gibt es einen neuen Befehl, mit dem Sie die Kompilierung des Codes starten und so ein solches System einrichten können.

Starten Sie eine Kompilierung durch Programmierung

Was ist kontinuierliche Integration?

Die kontinuierliche Integration besteht darin, bei jeder Änderung des Quellcodes zu prüfen, ob das Ergebnis der Änderungen zu Regressionen in der entwickelten Anwendung führt. Das Hauptziel besteht darin, Integrationsprobleme so früh wie möglich während der Entwicklung zu erkennen.

Neuer Befehl

Der neue Befehl Compile Project ermöglicht das Kompilieren:

  • das aktuelle Projekt
  • ein anderes Projekt als das aktuelle Projekt

Wenn die Kompilierung erfolgreich war, gibt der Befehl ein Statusobjekt mit einer Erfolgseigenschaft zurück. Andernfalls gibt er ein Statusobjekt mit einer Liste von Fehlern zurück.

Das aktuelle Projekt kompilieren

Die Kompilierung des aktuellen Projekts mit den Standardeinstellungen ist sehr einfach:

var $status : Object
$status :=Compile project(
)

Sie können die Kompilieroptionen auch überschreiben, indem Sie ein Objekt mit den neuen Werten übergeben. Hier sind die Optionen, die Sie außer Kraft setzen können:

  • Kompilierungsziel
  • Typ-Inferenz
  • Standardtyp für numerische Werte oder Schaltflächen
  • Symbole generieren
  • Generierung von Typisierungsmethoden
  • Komponenten zur Verwendung bei der Kompilierung

So können Sie beispielsweise jedes Mal, wenn Code an den Versionskontrollserver übermittelt wird, eine einfache Syntaxprüfung starten, um den zusammengeführten Code zu überprüfen.

var $options; $status: Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)

Wenn Ihre Anwendung Komponenten verwendet, müssen Sie die Liste der kompilierten Komponenten im Optionsobjekt übergeben.

var $options; $status: Object
var $component : 4D.File
$options :=New object()
$options .components:=Folder("/PACKAGE/Components").files(fk recursive).query("Erweiterung = .4dz")
$status :=Compile project($options)

Ein anderes Projekt kompilieren

Es ist möglich, eine Anwendung aus einem anderen Projekt zu kompilieren. Übergeben Sie einfach die Projektdatei an den Befehl:

var $file: 4D.File
$file :=Folder(fk documents folder).file("Datenbanken/meineApp/Projekt/meineApp.4DProjekt")
$status :=Compile project($file)

Verwaltung von Kompilierungsfehlern

Der Befehl gibt ein Statusobjekt zurück, das Ihnen mitteilt, ob die Kompilierung erfolgreich war oder nicht. Wenn die Kompilierung fehlschlägt, gibt 4D die Sammlung der Fehlermeldungen, die betroffenen Methoden und die Zeilennummer des Fehlers zurück.

Dann können Sie dank des neuen Parameters des METHOD OPEN PATH Befehls können Sie die Methode im Code-Editor öffnen und den Cursor auf die Fehlerzeile setzen.

Es ist zum Beispiel möglich, die Fehlersammlung in einem Listenfeld anzuzeigen und dann eine Schaltfläche hinzuzufügen, die die Methode des in der Liste ausgewählten Fehlers öffnet:

METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)

Bleiben Sie dran! Wir werden demnächst weitere Blogbeiträge zur kontinuierlichen Integration veröffentlichen!

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.