09/2015
Top Ten der Eclipse-Plugins Titelthema Heiße Begleiter Eclipse-Plugins
32 Damit Projekte funktionieren, sollten Entwickler sich auf einen festen Satz von Erweiterungen einigen. Das
Linux-Magazin stellt zehn Plugins für Java-EE-Projekte vor, die zum Pflichtprogramm gehören. Frank Pientka www.linux-magazin.de
Mit dem Menü-Eintrag »Run Report« öff- net sich der erste Bericht mit Daten im Browser über den Report Viewer. Von dort lässt sich der Bericht in unterschied- lichen Ausgabeformaten (Abbildung 2) ausgeben. Am einfachsten startet der Benutzer bei den Beispieldaten für klas- sische Automodelle und Oldtimer. Das Plugin bietet umfangreiche Funkti- onen und eine gute Dokumentation mit Beispielen samt Tutorials unter [http:// www.eclipse.org/birt/demos/] an. Bei- des ist hilfreich. Die Berichte lassen sich mit etwas Java-Programmierkenntnissen einfach in eigene Programme einbinden oder in den kommerziellen Actuate-Ser- verprodukten verwenden.
E Anyedit – Textkonverter © nattapon wongwean, 123RF wongwean, © nattapon
Das preisgekrönte Plugin Anyedit [3] Weil Eclipse viele Einstellungs- und Er- von der Firma Actuate. Als die vor der fügt dem Kontextmenü einige nützliche weiterungsmöglichkeiten bietet, gleicht Entscheidung stand, eine neue Genera- Textkonvertierungs-Funktionen hinzu. So keine Installation der anderen. Projekt tion von Berichtwerkzeugen zu entwi- lassen sich Whitespaces anzeigen, Tabs arbeit bedeutet aber Gemeinsamkeiten ckeln, stellte sie Birt von Anfang an unter in Leerzeichen umwandeln und Texte in festzulegen, besonders in Sachen Tools. das Eclipse-Dach. einer Datei alphabetisch sortieren. Außer- Die vorgestellten Plugins dienen diesem Birt lässt sich praktischerweise als Stand- dem erleichtert es das Arbeiten mit Wor- kollaborativen Gedanken und haben sich alone-Version betreiben oder als Plugin kingsets und kann diese zwischen Ec- im Projektkontext einen Hitparadenplatz zu einer bestehenden Eclipse-Installation verdient. Die Auswahl dient auch als hinzufügen. Da es bisher an jeder Release Starthilfe für den Einstieg in Eclipse. Zu- teilgenommen hat, steht Version 4.5 auch sätzliche Erweiterungen, über 2000, fin- für die Mars-Version von Eclipse parat. den sich zwar im Eclipse-Marktplatz [1], Birt besteht aus zwei Hauptkomponen- doch trotz komfortabler Suche ist es oft ten und ihren zugehörigen Engines: den Glückssache, passende Plugins zu finden. Designern für Berichte und Diagramme. Hier hilft die Auswahl (Abbildung 1) des Diese erzeugen Berichte in den unter- Artikels weiter. schiedlichen Formaten. Bevor der Benutzer Daten aus einer Da- E Birt tenbank einem Bericht zuordnet, muss er im Datenexplorer eine Datenquelle mit ei- Das Birt-Projekt ist schon seit 2004 im ner Datenbankverbindung wählen, dann Plugin-Pool dabei. Das Berichterstel- ein Dataset mit einer Datenbankabfrage lungs-Werkzeug Birt (Business Intelli- erstellen und die Spalten der Abfrage auf gence and Reporting Tools, [2]), stammt dem zuvor erstellten Bericht platzieren. Abbildung 1: Die Parade der Eclipse-Plugins. lipse-Workspaces ex- portieren und wieder importieren. Im Kontextmenü der Konsole lassen sich dort referenzierte Da- teien direkt öffnen. Das sind alles Funktio- nen, deren Ausfüh- rung sonst externe Edi- toren und Werkzeuge außerhalb von Eclipse bedingt. Mit Anyedit muss man Eclipse nicht mehr verlassen und hat die erweiter- ten Textkonvertie- rungs- und Editier- Funktionen bequem parat (Abbildung 3). Abbildung 2: Birt-Reports lassen sich im Design anpassen.
Auf der Suche nach Fehlern passen, um nur auf die für ein Projekt relevanten besonders kritischen Fehler Über Werkzeuge zur statischen Code- hingewiesen zu werden. Viele Java-Ent- Analyse lassen sich Fehler oder Unsau- wickler benutzen das Werkzeug-Drei- berkeiten schnell erkennen und oft auch gestirn Findbugs, PMD und Checkstyle mit den dort enthaltenen Hinweisen be- lokal oder zentral auf dem Server. heben, bevor sie sich zu größeren und teureren Problemen auswachsen. Weil E Findbugs in größeren Java-Projekten ein zentraler Buildserver mit Codequalitäts-Überprü- Ein beliebtes und ausgereiftes Werkzeug, fung Standard ist, sind Entwickler gut das aus einem Forschungsprojekt der beraten, Fehlerhinweisen nachzugehen. University of Maryland stammt und dort Da oft weitere statische Codeanalyse- auch seine Weiterentwicklung erfährt, ist Werkzeuge zum Einsatz kommen, einige Findbugs [4]. Das Tool kann den Java- stellt der Artikel vor, passieren bei den Code nach über 400 Fehlermustern (Ab- Prüfungen Überschneidungen oder im bildung 4) untersuchen. idealen Fall Ergänzungen. Diese lassen sich grob in die folgenden Entwickler sollten die Standardüberprü- Prüfkategorien einteilen: Verletzung von fungsregeln an eigene Bedürfnisse an- guter Praxis, potenzielle Programmierfeh- ler, schlampiger Code, Bugs, die zu Laufzeit- fehlern führen, sowie Code, der Sicherheits- lücken oder ein Perfor- manceproblem ent- hält. Findbugs prüft auch, ob es Probleme bei der Internationali- sierung von Texten oder beim Ausführen paralleler Threads gibt. Die Gewichtung und die Prüfungen gemäß der einzelnen Kate- Abbildung 3: Bei Anyedit lassen sich Konvertierungseinstellungen ändern. gorien und ihrer Re- 09/2015 Titelthema zum Beheben des sodass die Überprüfung bei jeder Datei- Bugs kommen eben- Änderung stattfindet. Befunde erschei- falls. Praktischerweise nen dann direkt am Rande der im Editor kann der Programmie- geöffneten Datei, und zwar mit Hinwei- rer von dort aus auch sen angereichert, wie diese zu beheben
Eclipse-Plugins direkt zu der betroffe- sind. Die angewandten Checkstyle-Re- nen Codestelle sprin- geln sind ebenfalls anpassbar und lassen 34 gen, um den Fehler sich als externe Datei auch anderen zur möglichst gleich aus- Verfügung stellen. zubügeln. E PMD gegen Doppelungen
www.linux-magazin.de E Checkstyle – Stilprüfung Neben Java kann PMD [6] auch Java Abbildung 4: Findbugs-Einstellung für zu untersuchende Fehlerkategorien. script, XML und XSL auf Fehler untersu- Bei Checkstyle [5] chen. Dabei nutzt es eine Erweiterung, geln lassen sich an eigene Anforderun- handelt es sich um einen Quellcode- den Copy-Paste-Detector (CPD). Der gen anpassen. Ein für Sicherheitsaudits Analyzer, der die Übereinstimmung von identifiziert doppelte Codestellen, die oft hilfreiches Zusatzplugin ist Find-sec. Es Java-Code mit Kodier-Regeln überwacht auf nötige Refaktorings hinweisen, um prüft den Code mittels weiterer 63 Feh- und über Abweichungen informiert. Als die Wartbarkeit und das Design der Soft- lermuster auf Sicherheit und korrekte Standardvorgabe für Java dienen meist ware schrittweise zu verbessern. Verwendung von Verschlüsselung, unter die Programmierregeln von Sun. Sie las- PMD und CPD lassen sich auf Projekt anderem nach den Top 10 des Open Web sen sich an eigene Bedürfnisse anpassen ebene aufrufen. Die Fehler erscheinen in Application Security Project. Dessen Da- (Abbildung 5) oder erweitern. Es lohnt nach Wichtigkeit absteigender Reihen- tei »findsecbugs‑plugin‑1.4.1.jar« lässt sich auch, die Datei »BlochEffectiveJava. folge farbig markiert. Die Kategorien hei- sich über den Plugins-Setting-Reiter als xml« mit Regeln aus dem Standardwerk ßen: Blocker, Kritisch, Dringend, Wichtig Plugin hinzufügen, um dann die Muster- von Joshua Bloch zum Thema „Effective und Warnung. Auch hier kann sich der Detektoren zu konfigurieren. Java“ aus einer Checkstyle-Installation Benutzer weitere Information zum ge- Gefundene Fehler zeigt der Bug-Explorer in den Eclipse-Workspace zu importieren meldeten Befund anzeigen lassen oder nach der Code-Analyse in der Eclipse- und zu verwenden. zu der betreffenden Codestelle springen. Sicht an und sortiert sie nach Schwere- Auch für dieses beliebte Werkzeug exis- Das Verhalten von PMD lässt sich über graden. Hilfreich: In der Fehleransicht tiert ein Eclipse-Plugin, das in keinem die Preferences individuell anpassen lassen sich zusätzliche Informationen Java-Projekt fehlen sollte. Der Nutzer ak- (Abbildung 6). zur Art des Fehlers aufrufen. Hinweise tiviert es für das jeweilige Eclipse-Projekt, E Egit – Git Team Provider
Seit die Eclipse-Projekte mit der Release 4.3 vom CVS-Versionssystem auf das modernere Git-Versionssystem umge- stellt haben, ist die Git-Integration von Release zu Release immer besser gewor- den. Inzwischen wird Egit [7] deshalb in den meisten Eclipse-Paketen als Team provider für das Versionskontrollsystem Git ausgeliefert. Ein Muss.
E Maven mit M2e-Plugin
Hinter modernen Buildwerkzeugen wie Gradle ist Apache Maven etwas ins Hin- tertreffen geraten. Trotzdem ist Maven und die Nutzung von Maven-Reposito- ries in vielen Projekten nach wie vor gesetzt. Das M2e-Plugin [8] ist für die Maven-Integration bei Eclipse zuständig und steckt im Lieferumfang jeder Eclipse- Abbildung 5: In Checkstyle lassen sich Einstellungen für die Prüfungen anpassen. IDE. So wird die aktuelle Maven-Version 09/2015 Titelthema digung verbessern. giert, steckt Thym auch im Lieferumfang Dabei wertet es den von Jboss Developer Studio. Editierkontext aus und vergleicht Code E Code-Reviews mit Gerrit muster mit gespei-
cherten Mustern an- Eclipse-Plugins derer Programmierer Code-Reviews sind nicht nur in vielen in der zentralen Code- Open-Source-Projekten, sondern auch in 35 Recommender-Daten vielen agilen Projekten Alltag. Das Code- bank. Das Prinzip Review-System Gerrit unterstützt und funktioniert erstaun- organisiert diese Arbeit so gut, dass es
lich gut und bewahrt in diesem Bereich inzwischen zum De- www.linux-magazin.de Entwickler davor, sich facto-Standard geworden ist. Die Review- im stetig wachsenden Einheit von Gerrit ist immer ein einzelner API-Dschungel zu Git-Commit. verlaufen oder falsch Um die Code-Review-Workflows mög- abzubiegen. lichst komfortabel aus der Eclipse-Um- Das Projekt entstand gebung heraus zu gestalten, gibt es das Abbildung 6: Die PMD-Einstellungen lassen sich übersichtlich aufklappen. als Forschungsprojekt neue Projekt Egerrit [11], das diese in My- an der TU-Darmstadt. lyn anzeigt und steuert. Das Projekt ver- 3.3.3 in der aktuellen Eclipse-Release 4.5 Es sei jedem Entwickler zum Auspro- weilt zwar noch im Inkubator-Zustand mit M2e 1.6 unterstützt. M2e 1.6 enthält bieren und zum Verbessern seines Pro- und es ist noch keine offizielle Release Verbesserungen bei der Autovervollstän- grammierstils empfohlen. Es ist in den erschienen, das soll sich aber im dritten digung, bei Änderungen des Project Ob- Eclipse-Mars-Paketen für Java-EE-Deve- Quartal 2015 ändern. Egerrit ist dann ein ject Model in der zugehörigen Pom.xml- lopers, Java-Developers und RCP-/RAP- Kandidat, den es lohnt, in die Projektar- Datei im Editor sowie eine bessere Arche- Developers standardmäßig aktiviert. beit mit Git zu integrieren. (uba) n type-Unterstützung. Die experimentelle Funktion, die automatisch Änderungen E Thym für mobile Apps in Pom.xml auf die davon abhängigen Infos Maven-Projekte anwendet, ist über die Eclipse Thym ist ein Akronym und steht [1] Eclipse-Marktplatz: Preferences zu aktivieren. für „The Hybrid Mobile Project“ [10]. [https://marketplace.eclipse.org] Es soll die Entwicklung von hybriden [2] Birt: [http://www.eclipse.org/birt] E Eclipse Code mobilen Apps auf der Basis des Apache- [3] Anyedit-Tools: [http://andrei.gmxhome.de/ Recommenders Cordova-Framework voranbringen. Es anyedit/features.html] werden mehrere Cordova-Ablaufumge- [4] Findbugs: Das Plugin Eclipse Code Recommenders bungen für die Plattformen I-OS, Android [http://findbugs.sourceforge. net] [9] will die Produktivität der Entwickler und Windows Phone (Abbildung 7) un- [5] Checkstyle: durch eine intelligente Codevervollstän- terstützt. Da sich Red Hat hier stark enga- [http://checkstyle.sourceforge.net] [6] PMD: [http://pmd.sourceforge.net] [7] Egit-Doku: [http://wiki.eclipse.org/EGit/User_Guide] [8] Maven-Plugin: [http://www.eclipse.org/m2e] [9] Eclipse Code Recommenders: [https://marketplace.eclipse.org/content/ eclipse‑code‑recommenders] [10]Eclipse Thym: [https://www.eclipse.org/thym] [11] Egerrit: [https://projects.eclipse.org/ projects/technology.egerrit]
Der Autor Frank Pientka ist Senior Software Architect bei der Materna GmbH in Dortmund. Er ist zertifizier- ter SCJP und Gründungsmitglied des ISAQB. Als Autor des Buches zu Apache Geronimo beschäf- Abbildung 7: Eine Auswahl der von Thym unterstützten Geräte. tigt er sich viel mit Java Open Source Software.