Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Ähnliche Dokumente
Step by Step Softwareverteilung unter Novell. von Christian Bartl

Einführung in die Informatik Tools

teamsync Kurzanleitung

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Import und Export von Übergängern

Schritt für Schritt Installationsanleitung -> CAS genesisworld SwissEdition

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Hex Datei mit Atmel Studio 6 erstellen

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Informationen zur Verwendung von Visual Studio und cmake

Online-Hilfe. Wie kann die Online-Hilfe des SIMOTION-Scout genutzt werden, ohne Scout zu starten?

Abwesenheitsnotiz im Exchange Server 2010

OP-LOG

Electronic Systems GmbH & Co. KG

Medea3 Print-Client (m3_print)

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

GITS Steckbriefe Tutorial

Das Omnikey 8751 e-health BCS...1 Auslesen über die LAN-Schnittstelle...1 Auslesen über die serielle Schnittstelle...4

Schuljahreswechsel im Schul-Webportal

Internet online Update (Mozilla Firefox)

Elexis-BlueEvidence-Connector

GEONET Anleitung für Web-Autoren

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Vorgehensweise bei Lastschriftverfahren

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

STRATO Mail Einrichtung Mozilla Thunderbird

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Adobe Encore Einfaches Erstellen einer DVD

Hinweise zur Installation von MySQL

Visual Basic Express Kompilieren mit Skripten

Einführungskurs MOODLE Themen:

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Informatik I Tutorial

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Funktionserweiterungen, behobene Funktionseinschränkungen und Funktionseinschränkungen, EASY Starter V1.5

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Microsoft Access 2010 Navigationsformular (Musterlösung)

Qt-Projekte mit Visual Studio 2005

Internationales Altkatholisches Laienforum

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Feiertage in Marvin hinterlegen

Neue Zugangsdaten für sg-online erstellen

Erstellen der Barcode-Etiketten:

Jederzeit Ordnung halten

desk.modul : ABX-Lokalisierung

Installation OMNIKEY 3121 USB

So geht s Schritt-für-Schritt-Anleitung

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Terminabgleich mit Mobiltelefonen

Drucken aus der Anwendung

Funktionsbeschreibung Website-Generator

Barcodedatei importieren

Anleitung. Verschieben des alten -Postfachs (z.b. unter Thunderbird) in den neuen Open Xchange-Account

Task: Nmap Skripte ausführen

So richten Sie Outlook Express ein. Einrichten von Outlook Express (hier am Beispiel von Outlook Express 6) für den Empfang meiner s

Nutzungsbroschüre für Vereine

Bedarfsmeldungen für Studentische Hilfskräfte und Tutoren erstellen und ändern

Kurzanleitung Erstellen eines ONYX Tests in OPAL

Die wichtigsten ESET Smart Security Einstellungen bei Selbstinstallation durch den Kunden

ecaros2 - Accountmanager

AutoCAD Dienstprogramm zur Lizenzübertragung

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

PDF-Druck und PDF-Versand mit PV:MANAGER

Etikettendruck mit Works 7.0

Installation und Inbetriebnahme von Microsoft Visual C Express

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Das Handbuch zu KAppTemplate. Anne-Marie Mahfouf Übersetzung: Burkhard Lück

Alltag mit dem Android Smartphone

Zählen von Objekten einer bestimmten Klasse

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Dreamweaver 8 Einführung

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

, dadurch wird der andere Modus eingestellt, also es sieht dann so aus

SANDBOXIE konfigurieren

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Anleitung für die Hausverwaltung

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen

Seite 1 von 6

Arbeiten mit UMLed und Delphi

PDF-Druck und PDF-Versand mit repdoc Werkstattsoftware

Anleitung zur Verwendung der VVW-Word-Vorlagen

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

RIS Abbild mit aktuellen Updates

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

1.3. Installation und Konfiguration von Filr Desktop

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Lokales Netzwerk Wie kann ich lokal installierte Drucker im Netzwerk für andere Nutzer freigeben? Frage:

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.

Transkript:

Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe, Februar 2008

Inhalt: Einführung und Zielstellung MSBuild Doxygen Batch und Taskplaner Fazit und Ausblick Quellen Einführung und Zielstellung Im Zuge eines aktuellen Projektes entstand beiläufig die Frage, ob die Möglichkeit einer automatisierten Kompilierung des erzeugten Quelltextes besteht. Da verschiedene Programmierer zusammen als Team das Projekt bearbeiten, befindet sich der Code für alle abrufbar zentral auf einem Server. Auf diesem soll anschließend auch ein tagesaktueller Build zu Testzwecken vorgehalten werden. Außerdem entstand die Idee, diesen täglichen Build, wenn möglich, mit einer automatischen Dokumentation zu verbinden. Diese sollte aus den bereits im Quelltext vorhandenen Kommentaren eine Softwaredokumentation erstellen, die später in einem üblichen Browser aufgerufen werden kann. Dazu wird im Folgenden zuerst die Erstellung eines Builds geprüft, anschließend ein Tool zur automatischen Dokumentation gesucht und zum Schluss versucht, beides automatisiert auf einem entsprechenden Server zu arrangieren. Aufgrund der fehlenden Größe und Komplexität des folgenden Beispielprojektes soll zunächst auf die Einrichtung eines dedizierten Build-Servers verzichtet werden. Das zugrunde liegende OS ist WindowsServer2003 SP2. MSBuild [1] Grundsätzlich kommen zur automatisierten Erstellung von Builds mehrere Tools, wie zum Beispiel Make, NAnt, ant usw., in Frage. Da als Entwicklungsumgebung Microsoft Visual Studio 2005 (VS2005) eingesetzt wird, soll allerdings ein Tool verwendet werden, dass.net vollständig unterstützt. Aus diesem Grund bietet sich die frei verfügbare Microsoft Build Engine (MSBuild) an, die bereits Bestandteil von VS2005 ist. Darüber hinaus kann sie als autonome Build-Umgebung verwendet werden, wenn VS2005 nicht installiert ist. Diese Tatsache könnte sich später noch als Vorteil erweisen, wenn die Kompilierung auf einem Server stattfinden soll, auf dem kein Visual Studio installiert ist. MSBuild ist vollständig transparent und unterstützt so die komfortable Erstellung komplexer Build- Vorgänge. Für MSBuild-Projektdateien kommt die moderne XML-Syntax zum Einsatz. Projektdateien bestehen aus den sogenannten Zielen (Targets), Aufgaben (Tasks), Eigenschaften (Properties) und Elementen (Items). Die Ziele dienen der Gruppierung der durchzuführenden Aufgaben. Ein Ziel kann zum Beispiel das Löschen, Anlegen oder Kopieren eines Verzeichnisses beinhalten. Die einzelnen unteilbaren Tätigkeiten, die zum Beispiel für einen Löschvorgang von Nöten sind, werden als sogenannte Aufgabe zusammengefasst. In den Eigenschaften befinden sich Schlüssel- und Wertpaare, die zur Konfiguration von Builds verwendet werden. Hier werden Werte an Aufgaben übergeben, Werte gespeichert oder auch Bedingungen ausgewertet. Zuletzt beinhalten die Elemente diejenigen Dateien, welche kompiliert werden sollen. Hier können mehrere Projekte in listenartiger Form benannt werden. 2

Zur Beantwortung der eingangs gestellten Frage nach grundlegender Realisierbarkeit wurde ein triviales Projekt erstellt (vgl. Abbildung 1 - Beispielprojekt), das allein über eine grafische Oberfläche und keinerlei Funktionen verfügt. Abbildung 1 - Beispielprojekt Anschließend wurde eine MSBuild Projektdatei (*.proj) erstellt, in welcher der gesamte Build-Prozess beschrieben wird und welche dann in der Konsole über das Kommando MSBuild.exe [Projektdatei] aufgerufen werden kann. Im Anschluss nun der Code unserer Beispielprojektdatei. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> <ItemGroup> <! - In die ProjectsToBuild werden alle zu kompilierenden Projekte eingetragen. --> <ProjectsToBuild Include="MSBuildSample\MSBuildSample.sln"> <Properties>Configuration=Debug</Properties> </ProjectsToBuild> </ItemGroup> <! - Führt den Build-Prozess mit den in ProjectsToBuild bestimmten Solutions aus. --> <Target Name="Build"> <MSBuild Projects="@(ProjectsToBuild)"/> </Target> </Project> Codebeispiel 1 - MSBuild-Projektdatei Das Code-Beispiel beginnt zunächst mit dem Namespace und der Benennung eines DefaultTargets, das benutzt wird, wenn beim Aufruf kein explizites Target angegeben wird. Anschließend folgt die sogenannte ItemGroup, in die alle zu kompilierenden Projekte eingetragen werden. Zuletzt definieren wir das Target, welches wir am Anfang als DefaultTarget angegeben haben. Dieses beinhaltet den Aufruf MSBuild und verweist 3

auf die Items, welche wir vorher in der ItemGroup hinzugefügt haben. Der Aufruf MSBuild kompiliert Projekt- und Solution-Dateien. Klassen werden durch den Aufruf CSC kompiliert. Ruft man nun diese Projektdatei durch MSBuild in der Konsole auf, wird die Solution MSBuildSample kompiliert, als würde man sie aus VS2005 heraus kompilieren. Doxygen [2] Nun sollen die Kommentare aus dem Quellcode heraus in ein Format extrahiert werden, dass sich nachher durch einen Browser aufrufen lässt. In diesem Fall versuchen wir eine einfache HTML-Seite zu erzeugen. Zur automatischen Dokumentation existieren bereits frei verfügbare Werkzeuge, die aus Quellcode oder sogar aus UML-Diagrammen multiple Ausgabeformate (zum Beispiel PostScript, PDF, XML) erstellen können. Auch hier beeinflusst die Entwicklungsumgebung die Auswahl. Das kostenlose Werkzeug Doxygen bietet sich für unser Vorhaben besonders an, da es die Verarbeitung von VS2005- Projektdateien und das Ausgabeformat HTML unterstützt. Doxygen lässt sich über die Befehlszeile aufrufen und benutzt eine Konfigurationsdatei, in welcher sich die spezifischen Anforderungen festlegen lassen. Diese kann durch den Wizard, erreichbar über das Doxygen GUI frontend, erstellt werden und enthält Angaben wie den Pfad zu dem jeweiligen Projekt, Hochsprachen-Optimierungen, ein Ausgabeformat (in diesem Fall HTML), einen Aufgabepfad sowie viele weitere mögliche Einstellungen (vgl. Abbildung 2 - Doxygen doxywizard). Abbildung 2 - Doxygen doxywizard Wichtig ist, dass im Code die zu extrahierenden Kommentare durch eine spezielle Kommentarsyntax gekennzeichnet sind. Da mehrere Formate angeboten werden, hier ein Beispiel für die von uns gewählte Syntax: /// <summary> /// Hier wird das Objekt foo genauer Kommentiert /// </summary> /// <param name="a">hier Informationen über a</param> /// <param name="b">hier Informationen über b</param> /// <returns>dieses Objekt gibt null zurück</returns> public object foo (int a, int b){ 4

return null; } Codebeispiel 2 - Kommentar Wir achten also während der Erstellung des Codes darauf, dass ausführlich und im richtigen Stil kommentiert wird. Dazu werden nach Fertigstellung der betreffenden Klasse oder eines Objektes die 3 Slashes /// gesetzt und Visual Studio erstellt nach Betätigen der Eingabetaste automatisch den Kommentarrumpf mit den in der Klasse oder dem Objekt enthaltenen Parametern und dem Rückgabewert. Nach der Kompilierung durch MSBuild führen wir dann Doxygen aus, welches uns automatisch unsere Dokumentation in einem Browser-abrufbaren Format erzeugt. Batch [3] und TaskPlaner Um die Vorgänge des Kompilierens und anschließenden Dokumentieren zu automatisieren greifen wir auf eine naheliegende und einfache Methode zurück. Es soll eine Batch-Datei erstellt werden, die die nötigen Aufgaben enthält und die dann täglich zu einem bestimmten Zeitpunkt durch den TaskPlaner ausgeführt wird. Die Erstellung einer Batch-Datei ist denkbar einfach. Wir erstellen eine neue Datei und speichern sie mit der Endung.bat. Anschließend geben wir die Aufgaben im Stil von DOS-Kommandos an, sowie den Pfad, wo die Ausführung der jeweiligen Anwendung (hier MSBuild und Doxygen) stattfinden soll. Nun rufen wir die Anwendung auf und übergeben alle nötigen Parameter, insofern diese nicht schon in den jeweiligen Konfigurationsdatei festgelegt wurden. Der folgende Beispiel-Code führt zuerst die Kompilierung unserer Test- Solution durch und ruft anschließend Doxygen auf, um die Dokumentation zu erstellen: cd F:\EveryDayCompile\Test_Project1\ msbuild MSBuildSample.csproj /t:rebuild /p:configuration=debug cd\ cd F:\EveryDayCompile\Documentation\ doxygen Doxyfile_TestProject1 exit Codebeispiel 3 Batchdatei Es ist darauf zu achten, dass wir bei MSBuild direkt das Projekt angeben und bei Doxygen die Konfigurationsdatei, wo der Pfad zu dem jeweiligen Projekt enthalten ist. Fazit und Ausblick Unser eingangs beschriebenes Vorhaben die automatische Ausführung von Kompilierung und Dokumentation konnte mit Hilfe von MSBuild und Doyxgen erfolgreich umgesetzt werden. Die Automatisierung lässt sich einfach, unkompliziert und kostenlos realisieren und bietet darüber hinaus auch das Potential für komplizierte Build-Vorgänge. So soll demnächst untersucht werden, ob der Code aus einem SVN Repository automatisch kompiliert werden und die Dokumentation anschließend im Intranet verfügbar gemacht werden kann. 5

Quellen [1] http://msdn2.microsoft.com/en-us/library/ms171452.aspx [2] http://www.stack.nl/~dimitri/doxygen/ [3] http://de.wikibooks.org/wiki/batch-programmierung 6