easydeps™ for eclipse®
easydeps™ for eclipse® erleichtert die Verwaltung der Abhängigkeiten (Dependencies) von Java®-Projekten untereinander sowie von häufig verwendeten JAR-Files.
Motivation
Wenn es für eine so elementare Funktion wie das Dependency Management in einer Entwicklungs-Plattform bereits eine Reihe etablierter Lösungen gibt, dann erscheint es vielleicht nicht unbedingt sinnvoll, das Angebot durch eine Eigenentwicklung noch weiter zu verbreitern.
Nach einer ganzen Reihe an Anläufen mit dem internen (workspace-basierten) Dependency Manager von eclipse®, dem quelloffenen Dependency Manager Apache® Ivy™ und dem Roundtrip-Entwicklungs-Tool Apache® maven™ haben wir uns am Ende aber doch dafür entschieden:
- Der eclipse®-interne Dependency Manager funktioniert hervorragend, solange man sich in den Grenzen seines privaten Workspaces bewegt. Arbeitet man allerdings in Projekten mit vielen technischen Abhängigkeiten und kurzen Release-Zyklen, wird das wunderschön in die GUI integrierte Dependency Management leider zunehmend zu einer JAR-File-Kopier-Teilzeitbeschäftigung.
- Apache® maven™ ist ein ausgereiftes und umfangreiches Software-Entwicklungs-Tool. Neben dem Dependency Management deckt es auch weite Teile des restlichen Build-Prozesses ab. Leider scheint beim Einsatz von maven™ 2 in eclipse® derzeit kaum einen Weg zu geben, das Dependency Management zu nutzen, ohne auch gleich den hochkonfigurierbaren (und dadurch für Einsteiger wenig intuitiven) Build-Prozess gleich mit zu übernehmen. So dauert es nicht lange, und man ist trotz der Nutzung von eclipse® wieder dort, wo man nicht hin wollte: auf der Fehlersuche im Konsolenfenster-Ausgabe-Dschungel und beim Konfigurieren von XML-Dateien, die für das Dependency Management keinerlei Relevanz haben.
- Apache® Ivy™ vollzieht eine bewusste inhaltliche Trennung zwischen Dependency Management und davon separat zu betrachtenden Funktionen wie Quellcode-Versionsverwaltung, Projekt-Dokumentation oder gar Zeitverwaltung. Dafür ist das Dependency Management umso generischer ausgelegt und ermöglicht den Anschluss unterschiedlichster Repositories. Leider müssen auch zur Anbindung populärer Datenhalden wie Subversion in eclipse® erstmal Plugins nachinstalliert werden, und die Befüllung der XML-Files gestaltet sich mangels eines eigenen Editors oder einer Auto-Complete-Funktion leider auch etwas mühselig.
Design-Ziele
Von dem zuvor genannten Bestandslösungen unterscheidet sich easydeps™ for eclipse® bereits in den Design-Zielen:
- Einfach nur Dependency Management
Die Gestaltung des Build-Prozesses und der Workflows bleibt unangetastet - Reduzierung auf das Wesentliche
Keine Unterstützung von Nischenlösungen und Einzelwünschen
Keine aufblähende Generik, für die am Ende die Benutzer Scherereien haben - Das Wesentliche bitte richtig und einfach
XML-Dateien ja, manuelle Bearbeitung durch die Benutzer nein
Saubere Einbettung in die grafische Benutzungsoberfläche von eclipse®
Übernahme sinnvoller Konzepte aus den evaluierten "Konkurrenzlösungen"
Produkteigenschaften
Daraus ergaben sich folgende grundlegende Produkteigenschaften:
- Repositories nur per WEBDAV
Installation und Konfiguration sollten so einfach wie möglich sein, zur Not auch unter Verzicht auf Spezialeinstellungen, die in bestimmten Firmennetzwerken oder mit bestimmten Versionsmanagementsystemen auftreten könnten. Daher werden Repositories ausschließlich über WEBDAV angebunden. Das umfasst implizit bereits eine ganze Menge vom einfachen HTTP-Webspace bis zum Subversion-Repository. - Build Path an der gewohnten Stelle und stets aktuell
Der Build Path von Java-Projekten, bei denen Dependency Management durch easydeps™ for eclipse® aktiviert wird, wird durch das Plugin stets aktuell gehalten und kann im Quellcode-Browser jederzeit eingesehen werden. - Zwei Editor-Fenster reichen aus
easydeps™ for eclipse® benötigt genau zwei Editor-Fenster: eines zum Festlegen globaler Einstellungen (Repositories), und eines zum Festlegen der projektspezifischen Abhängigkeiten (Dependencies). Die bearbeiteten Daten sind technisch gesehen zwar XML, aber beide Editoren verwenden klar zweckgebundene Eingabemasken. - Nutzung eines einzigen lokalen Caches
Wie z.B. bei maven™ 2 werden Artefakte (JAR-Dateien), die zur Auflösung einer Abhängigkeit (Dependency) aus einem Repository heruntergeladen wurden, in einem einzigen lokalen Cache im Benutzerverzeichnis gespeichert. Von dort aus können sie auch zur Erfüllung von Abhängigkeiten in allen möglichen anderen Projekten herangezogen werden; wiederholte Downloads und die unnötige Aufblähung der Java-Projekte durch JAR-Dateien werden vermieden.
Projektstatus
Die optisch leider noch nicht besonders ansprechende, aber ansonsten voll einsatzbereite Version 0.2 wurde im Dezember 2010 fertiggestellt.
Update Manager
Um easydeps™ for eclipse® herunterzuladen, besuchen Sie bitte die troius Update Site unter folgender URL: