Blog

Professionelles Build-Management für PhoneGap-Apps

Unser CI-Server baut jetzt eine lauffähige PhoneGap-App. Was dafür zu tun ist, haben wir im Artikel PhoneGap-Entwicklung mit dem Jenkins-CI-Server gezeigt. In diesem Blog wurde bereits die Frage behandelt, wie wichtig professionelles Build-Management ist und welche Vorteile man dadurch erzielt.

Wir wollen nun zeigen, wie man Build-Management auch für PhoneGap-Projekte betreiben kann. Dazu integrieren wir unseren Jenkins CI-Server mit dem Artefakt-Versionierungssystem Artifactory und mit dem Software-Qualitätsmanagement-Werzeug Sonar.

Jenkins lässt sich von Haus aus sehr einfach mit Sonar und Artifactory integrieren. Es verfügt über eine große Anzahl unterschiedlichster Plugins, mit der sich seine Funktionalität fast beliebig erweitern lässt.

Wir setzen voraus, dass sowohl Sonar als auch Artifactory bereits verfügbar sind. Entsprechende Installationsanleitungen findet man auf den Homepages dieser Projekte.

Artifactory

Artifactory-Plugin in Jenkins konfigurieren

Artifactory-Plugin in Jenkins konfigurieren

Dieser Punkt ist sehr einfach umzusetzen. Man installiert das Artifactory-Plugin und speichert in den Jenkins-Systemeinstellungen die Artifactory-URL sowie Benutzername und Passwort.

Weitere Einstellungen sind projektspezifisch und werden in den einzelnen Builds individuell vorgenommen.

Andere Artefakt-Versionierungssysteme wie Archiva oder Nexus könnten an dieser Stelle ebenso eingebunden werden. Nach meiner Erfahrung lassen sich diese beiden Alternativen jedoch bei weitem nicht so einfach mit Jenkins integrieren, wie es mit Artifactory möglich ist.

Analyse der Code-Qualität mit Sonar

Über den Nutzen der Analyse der Code-Qualität haben wir schon mehrfach geschrieben. Deswegen ist dies auch bei der App-Entwicklung ein Thema.

Es gibt FindBugs, PMD, CheckStyle und verschiedene Linter, mit denen man statische Code-Analysen erstellen kann. Mittels dieser lässt sich die Qualität gezielt verbessern.

PhoneGap-Apps werden primär in JavaScript implementiert, und das in diesem Blog schon mehrfach vorgestellte Werkzeug Sonar hilft uns auch in diesem Anwendungsfall weiter.

Sonar-Plugin in Jenkins konfigurieren

Sonar-Plugin in Jenkins konfigurieren

Wir installieren zunächst das Sonar-Plugin für Jenkins und konfigurieren dann alle notwendigen Werte in den Jenkins-Systemeinstellungen. Es reicht normalerweise, dem Plugin mitzuteilen, wie es sich mit der Sonar-Datenbank verbinden kann.

Alle weiteren Einstellungen sind auch hier projektspezifisch und werden in den einzelnen Builds individuell vorgenommen.

In Sonar selbst installieren wir zum Schluss noch das dafür verfügbare JavaScript-Plugin. Dieses analysiert den Code anhand der Regeln aus dem JSLint-Projekt.

JavaScript-Plugin für Sonar

JavaScript-Plugin für Sonar

Build in Jenkins konfigurieren

Artifactory als Post-Build-Aktion aktivieren

Artifactory als Post-Build-Aktion aktivieren

Ist das Plugin aktiviert, so wird der Export der Maven-Artefakte nach Artifactory in den Build-Einstellungen mit zwei Mausklicks ermöglicht. Die Option Deploy maven artifacts muss aktiviert sein. Wahlweise kann auch noch Capture and publish build info aktiviert werden.

Es ist sinnvoll, sich Gedanken darüber zu machen, wie oft die Artefakte ins Artifactory importiert werden sollen.

Bei jedem Jenkins-Lauf immer auch einen Artifactory-Import durchzuführen, ist eventuell nicht immer praktikabel.

Einen separaten Artifactory-Job einzurichten, der entweder nur stündlich oder sogar nur einmal pro Tag läuft, wird in den meisten Fällen die bessere Lösung sein.

Sonar als Post-Build-Aktion aktivieren

Sonar als Post-Build-Aktion aktivieren

Die Integration in Sonar erfolgt ebenfalls als Post-Build-Aktion. Nachdem diese Option aktiviert wurde, trägt man im Feld Language noch den Wert js ein.

Damit teilen wir Sonar mit, dass es zu diesem Build eine Analyse der Programmiersprache JavaScript durchführen soll.

Ergebnis

Wir können jetzt PhoneGap-Apps mit Maven auf einem Build-Server mit Jenkins bauen. Das Ergebnis, die Maven-Artefakte, können über Artifactory publiziert werden. Die Code-Qualität unserer JavaScript-Implementierung analysieren wir mit Sonar.

Wir setzen also genau diejenigen Werkzeuge ein, die bei professioneller Enterprise-Java-Softwareentwicklung unerlässlich sind. Nur so lässt sich auch bei der App-Entwicklung dasselbe Maß an hochwertiger Arbeit abliefern.

Holisticon AG — Teile diesen Artikel

Über den Autor

Jan beschäftigt sich sich seit knapp sieben Jahren mit dem Design, der Entwicklung und der Verbesserung von verteilten Web- und Unternehmensanwendungen. Die Erstellung solider, qualitativ hochwertiger Software, sowie deren Wartbarkeit liegen ihm dabei besonders am Herzen. Jan Weinschenker ist Organisator des Web-Performance-Meetups Hamburg.

Antwort hinterlassen