Einheitliche Code Style in Actionscript mit FlexPMD

Dieser Artikel wurde von Mielke, Laura und Do, Hoang Viet am Freitag, 7. September 2012 verfasst. Aktualisiert: 24.11.2013 03:22:32

In unserem vorherigen Artikel haben wir euch mit StyleCop ein Tool vorgestellt, womit in C# ein einheitlicher Style durchgesetzt wird. Dadurch wird die Lesbarkeit und somit auch die Wartbarkeit vom Code erhöht. In diesem Artikel stellen wir den AS-Entwickler FlexPMD vor.

FlexPMD ist die Korrespondenz im ActionScript Bereich. Es handelt sich hierbei um ein OpenSource Projekt von Adobe, in das wir euch im vorliegendem Artikel einführen wollen.

Die Installation

Um mit der Installation zu starten, installieren wir über Eclipse das FlexPMD Plugin. Hierzu müsst ihr Flash Builder als Administrator starten. Danach wählt ihr im Menü Hilfe den Unterpunkt Neue Software installieren aus.

Im darauf erscheinden Dialog, gebt unter Arbeiten mit

http://opensource.adobe.com/svn/opensource/flexpmd/plugin/trunk/flex-pmd-eclipse-plugin-site

ein. Wählt FlexPMD aus, und klickt auf Weiter, Weiter, Akzeptieren, Fertigstellen, OK und zum Schluss auf Jetzt neu starten.

Flex PMD_install

Nach dem Neustart des Flash Builders habt ihr das Plugin installiert, das an sich aber nix tut. Das beheben wir, indem wir das FlexPMD installieren und das Plugin konfigurieren.

Die Konfiguration

Hierfür müsst ihr als erstes das All-in-one-bundle vom FlexPMD mit den Command-Line-Tools herunterladen und entpacken. Es handelt sich hierbei um das eigentliche FlexPMD.

Ihr findet die hier verwendete Version 1.1 unter dem folgendem Link ( externe Link). Es liegt auf dem Server als flex-pmd-all-in-one-bundle-1.1.zip vor. Ladet euch das Paket runter und extrahiert es in einem Ordner eurer Wahl, das aber kein Leerzeichen im Pfad enthält (siehe unten für mehr Informationen). Wer möchte kann auch die Version 1.2 im Beta-Status nutzen ( externe Link).

Geht dann im Flash Builder auf Benutzervorgaben vom Menü Fenster und wählt FlexPMD aus.

Dort müsst ihr 2 Felder ausfüllen:

  1. FlexPMD command line installation: Geht auf Durchsuchen, und wählt in dem von euch entpackten All-in-one-bundle die Datei flex-pmd-command-line-1.1.jar aus.

  2. FlexCPD command line installation: Wählt im All-in-one-bundle die Datei flex-pmd-cpd-command-line-1.1.jar aus.

Flex PMD_settings

Wenn ihr nicht mit den vorkonfigurierten Styleregeln von FlexPMD arbeiten wollt, könnt ihr auch eigene Regelsätze in einer XML-Datei erstellen und sie über das Feld FlexPMD custom ruleset spezifizieren. Damit man keinen zusätzlichen Studenten auf 0€ Basis als Praktikant einstellen muss, hat Adobe das Tool FlexPMD Ruleset Creator zur Verfügung gestellt ( externe Link).

Das Schwesterprojekt FlexCPD ist ein Tool zur Erkennung von Copy&Paste Codestellen innerhalb des Projekts. Diese Funktion kann dafür genutzt werden, um potentielle Funktionen aufzudecken.

Leider wird es auch von bösen Tutoren und Dozenten missbraucht, um die armen Studenten auffindig zu machen, die ein paar Lösungen der letzten 15 Übungsblättern kopiert haben, um Sie dann mit zusätzlichen Aufgaben oder Exmatrikulation zu bestrafen. Ob dieser Bug bald gefixt wird, steht noch offen.

Nachdem ihr die gewünschten Konfiguration vorgenommen habt, wählt bitte OK.

Die Anwendung

Um FlexPMD anzuwenden, markiert ein Projekt eurer Wahl und klickt dieses mit der rechten Maustaste an. Wählt nun Run FlexPMD im Menü FlexPMD aus.

Dadurch taucht die FlexPMD-View auf, in der alle von FlexPMD gefundenen Regelverletzungen (Violations) angezeigt werden.

Diese können nach Violations oder Klassen geordnet werden.

Flex PMD_view

FlexPMD Nature

Um FlexPMD in eure Toolskette aufzunehmen, sodass es bei jedem Build automatisch ausgeführt wird, reicht ein Rechtsklick auf das gewünschte Projekt und ein Klick auf Add FlexPMD Nature im Menü FlexPMD.

Nun wird FlexPMD bei jedem Build ausgeführt.

Ausstellen lässt sich dies mit einem Klick auf Remove FlexPMD Nature vom selbigen Menü FlexPMD. Diese Prozedur könnt ihr natürlich beliebig oft wiederholen bis

zur Entlassung.

Mögliche Probleme

Da das Plugin derzeit nur als Beta verfügbar ist, gibt es noch das ein oder andere Problem.

Ein besonders häufig auftretendes Problem ist ein leere View nach dem Ausführen. Im Hintergrund wird der Prozess zwar gestartet, aber es sind Fehler aufgetreten. Dieser werden leider nicht angezeigt. Ihr bekommt dann lediglich ein weißes Fenster, das auf folgende Probleme zurück zu führen ist:

Pfade enthalten Whitespaces

Pfadangaben mit Leerzeichen kann zu Problemen führen, da Flex die Parameter einfach an FlexPMD übergibt. Somit macht das Leerzeichen einen Parameter zu mehreren Parameter.

Um das Problem zu umgehen, müsst ihr die jeweiligen Pfadangaben mit Anführungszeichen umrahmen. Alternativ, verschiebt ihr die Ordner und benennt sie derart um, dass keine Leerzeichen mehr vorliegen.

Von diesem Problem sind neben den Pfadangaben vom

  1. FlexPMD command line installation
  2. FlexPMD custom ruleset
  3. FlexCPD command line installation

auch der Workspace selbst ist davon betroffen. Diesen könnt ihr wie folgt ändern. Im Menü Datei auf  dem Unterpunkt Andere ... von Workspace ändern klicken. Im anschließenden Dialog einen neuen Workspace ohne Leerzeichen auswählen.

Zugriffsverletzung bei Windows System mit UAC (Windows Vista, Windows 7, Windows 8)

Eine mögliche Lösung ist es, den temporären Ordner von Java auf euren temporären Ordner in eurem Benutzerprofile zu lenken. Hierfür muss der Pfad zu eurem temporären Verzeichnis in der java command line explizit angegeben werden.

java -Xmx256m -Djava.io.tmpdir=%USERPROFILE%\AppData\Local\Temp

FlexPMD erkennt leider nicht die Standard Pathvariablen wie etwa %USERPROFILE%. Daher müsst ihr es mit dem eigentlichem Userverzeichnis ersetzen. Das ist auf den meisten System:

C:\Users\[Benutzername]

Sinnfreier Hinweis: Ihr könnt den RAM-Bedarf natürlich auch anpassen. So schränkt der Parameter -Xmx64k die Heapgröße auf 64K ein, womit die Anwendung auch auf einen Commodore 64 laufen würde mit evtl. Kompatiblitätsprobleme und wenigen Exceptions.

Ergebnisse FlexPMD werden gecached

Wenn ihr ausversehen oder gewollt die Ausgabe über den "Löschen" Button "gecleared" habt und anschließend eine Re-Run ausführen wollt, wird nur ein leeres weißes Fenster angezeigt.

Das liegt vermutlich daran, dass die Ergebnisse "gecached" sind und das "clearen" nur den Inhalt nicht etwa den internen Zustand löscht. Diesen Bug könnt ihr umgehen, indem ihr irgendeine Änderung im Code macht und anschließend speichert. Das führt dazu, dass er den Run dann ausführt.

Es muss sich nicht um eine echte Änderung handeln. Ihr könnt ein Zeichen löschen und wieder zurückschreiben.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network