Aus Linux-Magazin 04/2007

Die 12 besten Eclipse-Plugins

Was die IDE Eclipse neben ihrer intuitiv bedienbaren Workbench auszeichnet, ist ihre beispielhafte Erweiterbarkeit: Über den Plugin-Manager bedient sich der Anwender mühelos aus der reichen Auswahl an Addons und macht die Software so zur Spezialistin für seine Problemstellung.

Das zügige Schreiben von Programmcode setzt einen speziell zugeschnittenen Editor voraus, der wesentliche Features wie Syntax-Highlighting und Autocompletion für die eingesetzte Sprache unterstützt. Weitere wichtige Hilfsmittel bei der Programmierung sind eine Versionsverwaltung und ein Debugger. Eine integrierte Entwicklungsumgebung (IDE) fasst all diese und weitere Funktionen unter einer einheitlichen Oberfläche zusammen. Bei Eclipse fällt sie übersichtlich und flexibel aus.

Da die ursprünglich für Java konzipierte Eclipse bereits von vornherein auf Erweiterbarkeit angelegt ist, liegt es nahe, die seit Jahren bewährte Workbench auch für weitere Anwendungsgebiete zu nutzen, statt das Rad immer wieder neu zu erfinden. Die bereits definierten Extension-Points in Eclipse erleichtern es zudem, die meisten Features anzupassen oder neue hinzuzufügen.

Upgrade leicht gemacht

Ein Beispiel für die Vorteile, die eine Adaption des leistungsfähigen Framework mit sich bringt, liefert der Editor mit seinen Syntax-Highlighting- und -Prüfungsfunktionen: Bringt ein Entwickler ihm die neue Syntax bei, stehen Features wie Autocompletion oder die Kennzeichnung von Dateien mit Syntaxfehlern im Dateibrowser bereit. Der Eclipse-Dateibrowser hebt Dateien mit Syntaxfehlern grafisch hervor und beugt damit der Gefahr vor, sie zu übersehen.

Seit Version 3.0 enthält Eclipse einen Extension- und Update-Manager. Wer die richtigen Plugins kennt, passt die Software mit wenigen Mausklicks an seine Bedürfnisse an. Dieser Artikel stellt einige nützliche Addons vor (Tabelle 1).

Tabelle 1: Die nützlichsten
Eclipse-Plugins

Web Tools Project

Ende 2005 erblickte die erste Milestone-Release des Web Tools Project (WTP) das Licht der Welt. Ursprünglich setzte sich das Toolkit aus einer Hand voll ineinander greifender Einzelkomponenten für diverse Aufgaben bei der Webentwicklung zusammen. Dazu gehörten Quellcode-Editoren für die häufigsten Sprachen im Web wie HTML, CSS und Javascript. Schon bald versuchte das WTP außerdem, alle Bausteine für die Entwicklung klassischer J2EE-Webapplikationen bereitzustellen: Es band mehrere Application-Server ein. J2EE-Projekt-Wizards und ein J2EE-Navigator vereinfachten und standardisierten den Umgang mit Java-Anwendungen.

Mittlerweile hat sich das WTP in mehrere Unterprojekte aufgespaltet: Die Web Standard Tools (WST) stellen Editor-Plugins für HTML oder XHTML, CSS, Javascript, die Document Type Definition, Web Service Definition Language (WSDL) und für XML. Diese Plugins erweitern den Eclipse-Editor um Syntax-Highlighting und Autocompletion für die genannten Sprachen (Abbildung 1). Damit bilden sie die Basis für statische Webseiten oder statische Komponenten dynamischer Webanwendungen.

Abbildung 1: Editoren für viele Sprachen des Internets und für Java Server Pages: Das Web Standard Toolkit macht die Java-IDE Eclipse zum leistungsfähigen Werkzeug für Webenwickler.

Abbildung 1: Editoren für viele Sprachen des Internets und für Java Server Pages: Das Web Standard Toolkit macht die Java-IDE Eclipse zum leistungsfähigen Werkzeug für Webenwickler.

J2EE Standard Tools

Die J2EE Standard Tools (JST, Abbildung 2) enthalten Plugins zum Erstellen, Testen und fürs Deployment von J2EE-1.4-kompatiblen Anwendungen. Mit ihnen lässt sich Software für JCP-kompatible Application-Server (JSR-88, [1]) wie Apache Tomcat und JBoss sowie BEA-Server entwickeln. Sie enthalten einen Editor für Java Server Pages und für eingebettetes Javascript.

Abbildung 2: Mit den J2EE Standard Tools lassen sich Java-Webanwendungen für viele verbreitete Application-Server entwickeln.

Abbildung 2: Mit den J2EE Standard Tools lassen sich Java-Webanwendungen für viele verbreitete Application-Server entwickeln.

Sie unterstützen Servlets und Servlet-Filter und binden Enterprise-Java-Beans-Applikationen ein. So lässt sich etwa Suns bekannte EJB-Refenzimplementierung Pet Store in Eclipse importieren und als Basis für eigene Ajax-Anwendungen nutzen. Die JST-Tools kapseln das aufwändige Deployment von J2EE-Applikationen. Die Entwicklung von Webservices, leider nur auf Basis von Apache Axis 1.3 [2], unterstützen sie ebenfalls.

Ajax Toolkit Framework

Das Ajax Toolkit Framework (ATF, Abbildung 3) erleichtert die Entwicklung von Ajax-Anwendungen: Es bindet Ajax-Frameworks wie Dojo [3], Rico [4] und Kabuki [5] ein. Es stellt zudem einen DOM-Browser und -Inspector, einen Javascript-Debugger sowie einen »XmlHttpRequest«-Monitor bereit. Zur Ergebniskontrolle bindet das Plugin auch Mozilla in die Workbench ein.

Abbildung 3: Das Ajax Toolkit Framework automatisiert das Schreiben von Ajax-Webanwendungen auf der Basis verbreiteter Toolkits wie Rico oder Dojo.

Abbildung 3: Das Ajax Toolkit Framework automatisiert das Schreiben von Ajax-Webanwendungen auf der Basis verbreiteter Toolkits wie Rico oder Dojo.

Java Persistence und Server Faces Tools

Neben dem Web Standard Toolkit, den J2EE Standard Tools und dem Ajax Toolkit Framework enthält das Web Toolkit Project auch zwei Unterprojekte, die sich noch in einem frühen Entwicklungsstadium befinden: Die Dali Java Persistence API Tools (JPA) verstehen sich als Sammlung von Hilfsmitteln zur Entwicklung von Objekt-Relational-Mappern für die in Enterprise Java Beans 3.0 enthaltene Java Persistence API (JPA). Wizards und Editoren vereinfachen die einzelnen Arbeitsschritte.

Die Java Server Faces Tools (JSF) stecken sogar noch in der Planungsphase und liegen nicht als lauffähige Version vor. Zu den bisher geplanten Funktionen zählen die Unterstützung der Java Server Faces in der Spezifikation 1.2, die in J2EE 5 definiert ist, sowie Editoren für Java Server Faces oder Java Service Pages.

PHP Development Tools und Phpeclipse

Selbst wenn Skeptiker die Eignung der Skriptsprache PHP für große Programmierprojekte anzweifeln, existieren viele Anwendungen, deren Umfang eine leistungsfähige Entwicklungsumgebung voraussetzt. Zwei konkurrierende Projekte adaptieren Eclipse für PHP: Die PHP Development Tools (PDT, Abbildung 4), die die Firma Zend nach dem Beitritt in die Eclipse-Foundation initiierten, setzen auf den Web Standard Tools auf. Phpeclipse ist ein von der Foundation unabhängiges Community-Projekt.

Abbildung 4: Das von Zend initiierte PDT-Plugin macht die bekannten Eclipse-Features, zum Beispiel einen leistungsfähigen Editor und einen Debugger, für PHP verfügbar.

Abbildung 4: Das von Zend initiierte PDT-Plugin macht die bekannten Eclipse-Features, zum Beispiel einen leistungsfähigen Editor und einen Debugger, für PHP verfügbar.

Beide portieren alle wichtigen Features der Java-IDE für die Skriptsprache: Sie erweitern den Editor um an die Sprache angepasste Syntax-Highlighting- und Autocompletion-Funktionen. PDT von Zend profitiert davon, dass es die WSTs beerbt: Anders als Phpeclipse (Abbildung 5) versteht dessen Editor neben PHP auch HTML, Javascript sowie alle weiteren von den Web Standard Tools unterstütze Sprachen.

Abbildung 5: Wie die PDTs enthält auch Phpeclipse eine Debug-Lösung. Anders als die kostenlose von Zend unterstützt sie Server-Debugging, arbeitet aber nicht immer zuverlässig.

Abbildung 5: Wie die PDTs enthält auch Phpeclipse eine Debug-Lösung. Anders als die kostenlose von Zend unterstützt sie Server-Debugging, arbeitet aber nicht immer zuverlässig.

Beide PHP-Plugins binden externe Debugger ein: PDT nutzt den kostenlosen, aber nicht GPL-lizenzierten Zend-Debugger [6], Phpeclipse den Debugger der russischen Firma Nusphere [7], der in einer kommerziellen und in einer eingeschränkten, aber dafür freien Version [8] vorliegt. Neben Breakpoints unterstützen die Eclipse-Erweiterungen auch einen Einzelschrittmodus. Per »include« eingebunden Code öffnet der Debugger auf Wunsch in einem neuen Editorfenster. Wird der Programmablauf angehalten, zeigt ein Unterfenster die Werte sämtlicher Variablen.

Die Debugger beider Plugins haben ihre Vor- und Nachteile: Zwar existiert für PDT ein All-in-one-Paket, das neben dem PDT und allen nötigen Plugins auch das Executable-Debugger-Plugin enthält. Vorausgesetzt, dass ein Java Runtime Environment bereitsteht, beschränkt sich eine Installation damit auf das Auspacken des Archivs. Der Executable Debugger führt den Code jedoch lokal als CGI-Skripte aus. Schwierigkeiten, die sich aus dem Zusammenspiel von PHP und dem Webserver ergeben, bleiben damit untendeckt. Server-Debugging beherrscht das PDT-Plugin nur in Zusammenarbeit mit der kommerziellen Zend-Plattform [9].

Der Debugger von Nusphere liegt nur bis Version 2.13.1 als vorkompilierte PHP-Extension vor. Aktuelle freie Versionen (gegenwärtig 2.15.1) sowie Module, die die neuesten PHP-Versionen unterstützen, muss der Anwender selbst kompilieren. Anders als der kostenlos erhältliche Executable Debugger des PDT-Plugins beherrscht Phpeclipse Server-Debugging. Damit das Highlighting der durchlaufenen Zeilen im Editor funktioniert, braucht Eclipse dann allerdings einen Zugriff auf die PHP-Quelltexte auf dem Server. Der Nusphere-Debugger arbeitet jedoch bei komplexen Verschachtelungen im Quellcode nicht in allen Fällen ganz zuverlässig.

Subclipse

Von Haus aus unterstützt Eclipse als Versionsverwaltung nur CVS. Obwohl sich der Veteran durch Stabilität auszeichnet und nach wie vor bei vielen Open-Source-Projekten zum Einsatz kommt, weist er gegenüber dem neueren Subversion (SVN) Nachteile auf. Das Subclipse-Plugin bindet SVN in die Eclipse-Oberfläche ein: Die Icons im Dateibrowser zeigen, ohne Platz zu verschwenden, den Synchronisationsstatus der Dateien mit dem Repository.

Alle SVN-Operation lassen sich über die grafische Oberfläche bedienen (Abbildung 6). Subclipse erweitert außerdem die »Compare-With«-Funktion in Eclipse um die Fähigkeit, Versionen aus einem SVN-Repository einzubeziehen. Das Plugin beherrscht auch die Funktionen des Svnadmin-Tools. Zu bedenken ist allerdings, dass es bei sehr großen Repositories und bedingt durch die Einschränkungen der Eclipse-Architektur dabei gelegentlich zu Problemen kommt.

Abbildung 6: Alle Subversion-Operationen im Kontextmenü des Dateibrowsers: Subclipse bindet das CVS in die Eclipse-IDE ein.

Abbildung 6: Alle Subversion-Operationen im Kontextmenü des Dateibrowsers: Subclipse bindet das CVS in die Eclipse-IDE ein.

Solex

Ein erster Schritt zum Verständnis einer Webanwendung kann das Belauschen der Kommunikation zwischen dem Webserver und der Anwendung im Webbrowser sein: Welche Werte sendet die Anwendung bei einer bestimmten Aktion per »POST« an den Server? Mit welchen Headern antwortet der Server? Das Solex-Plugin schaltet sich als Proxy in die Kommunikation ein, zeichnet sie auf und stellt Fragen und Antworten übersichtlich in einer Baumansicht dar.

Die aufgenommenen Client-Server-Interaktionen lassen sich als XML-Dateien speichern und zu einem späteren Zeitpunk abspielen. Solex bietet den Entwicklern damit eine interessante Hilfe für das Regression-Testing. Über das reine Abspielen hinaus verändert und überwacht das Plugin auch die aufgenommen Werte entweder per Benutzereingabe (Abbildung 7) oder über Filterregeln oder Assertions. Funktionen für einen Lasttest wollen die Entwickler in späteren Versionen noch hinzufügen.

Abbildung 7: Das Solex-Plugin belauscht die Kommunikation zwischen Webserver und Webanwendung. Der aufgezeichnete Datenaustausch lässt sich zu Testzwecken erneut mit veränderten Parametern abspielen.

Abbildung 7: Das Solex-Plugin belauscht die Kommunikation zwischen Webserver und Webanwendung. Der aufgezeichnete Datenaustausch lässt sich zu Testzwecken erneut mit veränderten Parametern abspielen.

Jadclipse

Das Plugin Jadclipse integriert den Java-Decompiler Jad [11] in Eclipse. Damit lässt sich der Quellcode von Java-Klassen, die lediglich als Class-Dateien vorliegen, in Eclipse betrachten. Wenn beim Kompilieren bestimmte Einstellungen, etwa das Beibehalten der Zeilennummern, aktiv waren, ist es sogar möglich, mit den dekompilierten Klassen im Debugger zu arbeiten.

JBoss-IDE und Hibernate Tools

Die JBoss-IDE bietet für Anwender des Application-Servers eine sinnvolle Ergänzung zur Web Tools Platform: Die Plugin-Sammlung bindet die Komponenten der JBoss-JEMS-Plattform in Eclipse ein. Die Erweiterungen lassen sich auch einzeln installieren. Zusätzlich zu dem Plugin für den Applikationsserver enthält die JBoss-IDE weitere Tools für Webservices, AOP, die Rule-Engine Drools, die Workflow-Engine Jbpm sowie für Hibernateund EJB3.0.

Die Hibernate Tools und das zugehörige Java Persistence API (JPA, Abbildung 8) sind auch unabhängig vom JBoss-Applikationsserver zum Beispiel für das Reverse Engineering einsetzbar: Anhand eines Datenbankschemas ist das Plugin in der Lage, die benötigten Ressourcen für Hibernate oder das JPA zu generieren. Das Plugin erzeugt beispielsweise Java-Klassen einschließlich der Datenfelder, die sich für Datenbankabfragen nutzen lassen.

Abbildung 8: Übersicht in Baumdarstellung: Die Hibernate Tools binden das Java-Persistence-API in Eclipse ein und erzeugen Ressourcen für Hibernate oder die JPA.

Abbildung 8: Übersicht in Baumdarstellung: Die Hibernate Tools binden das Java-Persistence-API in Eclipse ein und erzeugen Ressourcen für Hibernate oder die JPA.

Für das Erstellen der Hibernate-spezifischen Abfragen in der Hibernate Query Language (HQL) bietet das Plugin zusätzliche Unterstützung in Form einer Autovervollständigungs-Funktion und eines HQL-Editors, der die Abfragen direkt ausgeführt. Assistenten für Konfigurationsdateien und Ant-Tasks runden den Leistungsumfang des Plugins ab.

Visual Editor

GUIs lassen sich am einfachsten mit grafischen Editoren wie dem Visual Editor der Eclipse Foundation erstellen. Eclipse lädt das Plugin per Update Manager von der Callisto-Discovery-Site, deren URL in Eclipse voreingestellt ist. Es unterstützt die GUI-Plattformen Swing, AWT und SWT mit allen Standard- und beliebigen Java-Bean-Komponenten.

Das Eclipse-spezifische SWT (Standard Widget Toolkit) ist eine performante Alternative zum Java-Standard Swing: Es nutzt die Oberflächenelemente des Betriebssystems direkt. Wichtige Einsatzgebiete von SWT sind neben eigenständigen Entwicklungen vor allem Eclipse-Plugins und Rich-Client-Platform-Anwendungen auf Eclipse-Basis.

Der Aufbau von Visual Editor kommt Benutzern entgegen, die bereits mit grafischen GUI-Buildern gearbeitet haben: Neue GUI-Elemente wählt man wie gewohnt in der Palette aus (Abbildung 9) und ordnet sie auf der Arbeitsfläche an. Auch die Baumdarstellung der GUI-Elemente und die Wizards zum Hinzuzufügen von Event Handlern sind intuitiv und benutzerfreundlich gestaltet.

Abbildung 9: GUIs per Drag&Drop: Der Visual Editor erstellt die entsprechenden Klassen und nimmt dem Programmierer damit Handarbeit ab.

Abbildung 9: GUIs per Drag&Drop: Der Visual Editor erstellt die entsprechenden Klassen und nimmt dem Programmierer damit Handarbeit ab.

Andere GUI-Werkzeuge bereiten oft Probleme, wenn der Benutzer den erzeugten Code von Hand anpasst, der Eclipse Visual Editor erlaubt dies in Grenzen. Er übernimmt Änderungen sofort in der grafischen Ansicht. Insgesamt präsentiert er sich als solides und leistungsstarkes Werkzeug. Nur beim Entwerfen von Swing-Oberflächen bietet der GUI-Builder Matisse der Netbeans-IDE noch einige Funktionen zusätzlich.

RSS View

Fast alle Nachrichtenquellen im Internet bieten RSS-Feeds an. Wer bei der Arbeit mit Eclipse Neuigkeiten erfahren will, muss keine zusätzliche Anwendung starten, wenn er das RSS-View-Plugin nutzt (Abbildung 10). In der Überblicksansicht sieht er zunächst nur Schlagzeilen. Bewegt er die Maus darüber, öffnet sich ein Popup mit den weiteren Informationen. Ein Doppelklick auf eine Schlagzeile öffnet den Weblink im Browser. Je nach Einstellung kann dies auch der interne Eclipse-Browser sein.

Abbildung 10: Direkt im Blickfeld: Das RSS-View-Plugin zeigt Newsfeeds in einem Eclipse-Unterfenster an.

Abbildung 10: Direkt im Blickfeld: Das RSS-View-Plugin zeigt Newsfeeds in einem Eclipse-Unterfenster an.

RSS View beherrscht mehrere Anzeigemodi: Eine zeitlich sortierte Liste zeigt alle Nachrichten im Überblick. Bei der einklappbaren Gruppierung nach Beitragsalter oder Quelle lassen sich uninteressante Beiträge ausblenden. Das Plugin bietet Filter an, die Beiträge nach verschiedenen, kombinierbaren Kriterien sortieren. Der vielleicht praktischste Filter merkt sich bei der Aktivierung die aktuelle Zeit und zeigt nur neuere Beiträge an. Weitere Filter begrenzen die Darstellung auf eine vom Nutzer festgelegte Anzahl von Beiträgen pro Newsfeed oder blenden News aus, die ein bestimmtes Alter überschritten haben. (pkr)

Infos

[1] JSR-88: [http://jcp.org/en/jsr/detail?id=88]

[2] Apache Axis: [http://ws.apache.org/axis]

[3] Dojo: [http://www.dojotoolkit.org]

[4] Rico: [http://openrico.org]

[5] Kabuki: [http://wiki.apache.org/incubator/KabukiProposal]

[6] Zend Executable Debugger: [http://downloads.zend.com/pdt/debugger]

[7] Nusphere: [http://www.nusphere.com]

[8] Freier Nusphere-Debugger: [http://sourceforge.net/projects/dbg2/]

[9] Zend-Plattform: [http://www.zend.com/products/zend_platform]

[10] Dbunit: [http://dbunit.sourceforge.net]

[11] Java-Decompiler Jad: [http://www.kpdus.com/jad.html]

Die Autoren

Ramon Wartala ist IT-Leiter bei Orangemedia in Hamburg. In seiner Freizeit beschäftigt er sich mit den Themen und Techniken des Internets und verbringt gerne viel Zeit mit seiner Frau.

Markus Junginger hat als langjähriger Eclipse-Anwender auch eigene kleine Plugins entwickelt. Seit 1998 beschäftigt er sich mit Java und ist inzwischen freiberuflich in diesem Bereich tätig.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben