Am 24. Juni hat die Eclipse Foundation eine neue Version ihrer beliebten Entwicklungsumgebung veröffentlicht. Eclipse Mars begeistert mit zahlreichen kleinen Verbesserungen, der Integration von Docker und dem äußerst hilfreichen Oomph.
Die weithin bekannte Entwicklungsumgebung Eclipse [1] besteht aus zahlreichen Komponenten, die jeweils eigene Projekte unabhängig voneinander weiterentwickeln. So rüsten beispielsweise die im CDT-Projekt (C/C++ Development Tooling, [2]) erzeugten Werkzeuge und Plugins eine Unterstützung für C/C++-Programmierer nach.
Damit Anwender nicht ständig den neuesten Versionen hinterherlaufen müssen, frieren einmal im Jahr alle Entwickler ihre Projekte ein und schnüren zusammen mit der Eclipse Foundation ein Komplettpaket. Am 24. Juni jährte sich dieser so genannte Annual Eclipse Release Train bereits zum zehnten Mal.
Debian und Ubuntu
Debian und Ubuntu halten in ihren Repositories nur die hoffnungslos veraltete Version 3.8 von Eclipse vor. Auf Anfrage des Linux-Magazins begründete Paketbetreuer Jakub Adam diese Situation mit fehlender Manpower. Man versuche aber, für einzelne Eclipse-Projekte aktuelle Pakete zu schnüren. Mindestens die Mars-Versionen der CDT, WTP oder Mylyn sollen in den kommenden Wochen in den Repositories auftauchen – und dabei auf der Eclipse-Plattform 3.8 laufen. Laut Jakub Adam soll das “ziemlich gut” funktionieren.
Wer Eclipse 4.5 unter Debian und Ubuntu einsetzen will, muss die IDE also selbst installieren. Auf einem Testsystem mit Ubuntu 15.04 verweigerten Eclipse und einige Projekte jedoch die Arbeit, besonders Sirius stürzte immer wieder ab. Die Gründe dafür ließen sich bis Redaktionsschluss nicht klären.
Das nun veröffentlichte Eclipse Mars besteht aus 79 Einzelprojekten, in denen zusammen über 65 Millionen Codezeilen stecken, an denen 380 Entwickler gearbeitet haben – ein neuer Rekord. Sämtliche zu Mars gehörenden Projekte und ihre Versionsnummern listet eine eigene Seite auf [3].
Schwungvoll
Die Eclipse-IDE stand bei Redaktionsschluss in insgesamt 13 Varianten bereit [3]. Jede richtet sich an eine ganz bestimmte Nutzergruppe und enthält nur die für den jeweiligen Anwendungsfall benötigten Projekte beziehungsweise Plugins. Über die nachträgliche Installation von Plugins (siehe Kasten “Plugin-Situation”) lassen sich jedoch alle anderen Features nachrüsten. Jede Eclipse-Variante gibt es für Linux in einer 32- und einer 64-Bit-Fassung. Es genügt, das passende Archiv herunterzuladen, es zu entpacken und dann die Anwendung »eclipse« zu starten.
Plugin-Situation
Drittanbieter-Plugins teste das Eclipse-Projekt nicht, gab Release Manager Wayne Beacon gegenüber dem Linux-Magazin zu Protokoll. Vielmehr soll der Entwicklungsprozess mit seinen Milestone-Builds dem Projekt selbst, aber auch den Entwicklern von Drittanbieter-Plugins, die Gelegenheit geben, ihren Code zu testen und zu aktualisieren. So können sie sicherstellen, dass er bereit für die Release ist.
Letztendlich müssten sich aber die Anbieter um die Qualitätssicherung kümmern. Beacon schiebt jedoch hinterher, dass es seines Wissens keine signifikanten Probleme mit Drittanbieter-Plugins für Eclipse Mars gebe. Die Zahl der erfolgreichen Plugin-Installationen über den Marketplace sei laut Statistik nach der Release angestiegen.
Eine alternative Installationsmöglichkeit bietet der neue Eclipse-Installer des Oomph-Projekts [4]. Dieser Assistent stellt zunächst alle Eclipse-Fassungen zur Auswahl (Abbildung 1). Hat sich der Anwender für eine Variante entschieden, darf er das Installationsverzeichnis festlegen, die zu installierende Eclipse-Variante wählen, das zu verwendende JDK vorgeben und gezielt die 32- oder 64-Bit-Version einspielen.
Standardmäßig speichert der Assistent alle heruntergeladenen Plugins in einem Bundle Pool. Damit stehen die Plugins automatisch allen anderen Eclipse-Installationen zur Verfügung, die diesen Bundle Pool mitnutzen [5]. Über das Menü mit dem Hamburger-Symbol dürfen Anwender weitere Bundle Pools hinzufügen beziehungsweise den Speicherort der Bundle Pools ändern.
Der Installer kennt auch einen Advanced Mode, der zunächst alle bereits beschriebenen Einstellungen in nur einem Fenster zusammenfasst. In ihm dürfen Anwender der Installation außerdem einzelne Projekte hinzufügen beziehungsweise solche von ihr ausnehmen. Auch im laufenden Betrieb lassen sich in Eclipse zu einem späteren Zeitpunkt noch Projekte nachholen (Abbildung 2).
Wer mag, definiert eigene Eclipse-Varianten in entsprechenden Konfigurationsdateien und führt sie dem Installationsassistenten zu. Er gibt dabei auch gleich die gewünschten (Grund-)Einstellungen sowie benötigte Tasks vor. So klont er schon während der Installation ein Git-Repository. Ein Weg, auf dem sich eine maßgeschneiderte Eclipse-Variante schnell reproduzieren beziehungsweise verteilen lässt.
Damit Entwickler sich nicht im XML verheddern, das die Konfigurationsdateien verwenden, rüstet Oomph einen eigenen Setup-Editor nach (Abbildung 3). Mit ihm klicken sie sich die benötigten Komponenten und Grundeinstellungen einfach zusammen. Ein passender Wizard erstellt auf Wunsch eine neue Setupdatei (»File | New | Other | Oomph | Setup Project Model« ).
Flinke Oberfläche
Eclipse 4.5 startet nur noch mit einer JRE ab Java 7. Dafür soll die IDE jetzt wesentlich flotter zu Werke gehen als ihre Vorgängerin. Möglich machen das unter anderem ein größerer Java-Heap sowie zahlreiche Code-Optimierungen. Die Textsuche nutzt mehrere Prozessorkerne und fördert so Fundstellen drei- bis viermal schneller zutage.
Dank der leicht aufpolierten Benutzeroberfläche zeigt der Project Explorer jetzt verschachtelte Projekte in einer Hierarchie an. Der »Öffnen« -Dialog bietet ab sofort ein Filterfeld und erinnert sich an den ausgewählten Editor. Analog lassen sich im Fenster »Open Ressource« mehrfach angezeigte Ressourcen ausblenden. Wer neuerdings mit der rechten Maustaste auf ein Editor-Tab klickt, schließt bei Bedarf alle Tabs zur Linken oder Rechten (Abbildung 4).
Das Drucken-Symbol blendet Eclipse Mars standardmäßig aus. Viele Symbole liegen zudem als PNG-Bilder vor und sollen insbesondere auf dunklen Hintergründen besser hervorstechen. Das überarbeitete Dark-Theme wirkt sachlicher und erhöht die Lesbarkeit von Texten (Abbildung 5). Auf Linux-Systemen verwendet das Standard-Theme GTK ab sofort GTK+ 3. Sollte das GUI-Toolkit nicht installiert sein, greift Eclipse auf GTK+ 2 zurück, das allerdings mindestens in Version 2.18 vorliegen muss.
Nach über drei Jahren Abwesenheit kehrt das Fenster »Customize Perspective« zurück, über das Anwender die Perspektiven anpassen (Abbildung 6). Die Konsole bietet auf Wunsch einen Zeilenumbruch (Word Warp) und in ihrem Kontextmenü den Befehl »Terminate/Disconnect All« an. Scrollt der Nutzer in der Konsole mit den Pfeiltasten, dem Mausrad oder der Scrollleiste hoch, schaltet Eclipse automatisch den Scroll-Lock-Modus ein.
Kammerjäger
Programmfehler fängt die IDE ab und schickt auf Wunsch einen Bericht an die Eclipse-Entwickler – auch komplett anonym. Die Funktion ist Teil der Automated Error Reporting Initiative (AERI), mit der die Entwickler Fehler in der IDE schneller erkennen und beheben möchten.
Eclipse 4.5 bringt zudem ein so genanntes UI Responsiveness Monitoring Tool mit, das sich unter »Window | Preferences« versteckt. Es zeichnet auf Wunsch alle Situationen auf, in denen die Benutzeroberfläche nicht oder nur träge reagiert. Die entsprechenden Meldungen landen in Eclipses Errorlog. Auf diese Weise lassen sich länger laufende Tasks identifizieren, die Eclipse blockieren.
Frischer Kaffee
Auch für Java-Programmierer gibt es zahlreiche nützliche und interessante Neuerungen. So unterstützen die Quick Fixes jetzt auch Java 8. Unter anderem können sie die Parametertypen einer Lambda Expression ableiten. Neu an Bord sind zudem einige Templates, etwa für »try/finally« . Ein so genannter Extension Point erlaubt es, Codeformatierer von Drittentwicklern als Erweiterungen einzuhängen.
Die statische Flussanalyse geht inzwischen etwas intelligenter zu Werke und berücksichtigt insbesondere auch den Fluss von »null« -Werten. Das soll vor allem die Meldungen über False Positives reduzieren.
Junit klettert auf Version 4.12. Die zugehörige View zeigt bei Bedarf nur noch die übersprungenen (skipped) Tests und führt Gruppen aus parametrisierten Tests noch einmal aus (Re-Run). Das Jubula-Projekt erleichtert funktionale GUI-Tests von Java- und HTML-Anwendungen. Das zu Mars gehörende Jubula 3.1 führt ein neues Client-API ein, über das Entwickler Testfälle in Java formulieren. Die zugehörigen Testfälle lassen sich praktischerweise in Versionsverwaltungen beziehungsweise Code-Repositories wie etwa Git konservieren.
Über den Eclipse Marketplace [6] dürfen Anwender ihrer IDE schon jetzt Java 9 beibringen. Eclipses Java-9-Support befindet sich allerdings noch in einem Betastadium und soll erst Bestandteil des 2016 geplanten Eclipse 4.6 werden.
Apropos Marketplace: Der zeigt standardmäßig nicht mehr alle Versionen eines Plugins an. Stattdessen sehen Anwender nur noch die für Eclipse 4.5 geeigneten Plugins. Darüber hinaus unterscheidet der Marketplace zwischen notwendigen und optionalen Komponenten. Diese Maßnahmen sollen die Darstellung übersichtlicher machen.
Angedockt
Mit Docker [7] lassen sich Anwendungen in Container verpacken und so voneinander isolieren. Die Entwickler der Linux-Tools steuern in Eclipse Mars eine passende Docker-Perspektive bei (Abbildung 7). In ihr stellen Entwickler eine Verbindung zu einem Docker-Daemon her und verwalten dann in entsprechenden Views die Images und Container beziehungsweise starten sie. Wer die CDT nutzt, darf zudem sein fertiges C– oder C++-Programm von den Docker-Tools in einen Container verpacken und starten lassen. Das Docker Tooling getaufte Projekt gehört zwar offiziell zu den Linux-Tools, wer das Plugin nachinstallieren möchte, findet es jedoch bei den »General Purpose Tools« .
Dank des M3e-Projekts unterstützt Eclipse Mars jetzt das Buildtool Maven 3.3.3. Auch lassen sich Maven-Archetypen besser integrieren und der POM-Editor liefert eine optimierte Autovervollständigung ab. Zudem gibt es erstmals einen Update-Mechanismus, der nach einer Änderungen in der »pom.xml« automatisch die Projektkonfiguration aktualisiert. Dieses Feature gilt allerdings noch als experimentell.
Das neue Projekt Buildship integriert das Buildtool Gradle. Anwender importieren über Wizards bequem ein bestehendes Gradle-Projekt oder legen ein neues an. Eine entsprechende View zeigt die anliegenden Aufgaben eines Gradle-Projekts, erlaubt eine Änderung der Konfiguration und stößt Gradle-Builds an. Buildship müssen Anwender derzeit noch über den Marketplace installieren.
Ebenfalls neu ist das Thym-Projekt (siehe Artikel im Heft, [8]). Die von ihm bereitgestellten Tools erlauben es, Crossplattform-Anwendungen mit Apache Cordova zu entwickeln [9]. Thym 1.0.0 erlaubt es seinen Nutzern, Webanwendungen für I-OS, Android und Windows Phone zu entwerfen und zu bauen.
Klickibunti
Mit dem Sirius-Projekt erzeugen Anwender eigene Diagramm-, Tabellen- oder Baum-Editoren. Sirius kann die darüber erstellten Modelle automatisch anhand von Regeln beziehungsweise Ausdrücken validieren. Die in Mars enthaltene Version 3.0 geht bei großen Modellen nun deutlich flotter zu Werke und erleichtert durch kleine Verbesserungen an der Benutzeroberfläche dem Anwender die Arbeit. So lassen sich seit Neuem Anker direkt an den sichtbaren Kanten der Bilder ausrichten – sofern diese einen transparenten Hintergrund verwenden. Mit der Abfragesprache AQL (Acceleo Query Language) schreiben Programmierer zudem kürzere Ausdrücke.
Die aktualisierte Version der CDT bringt außerdem eine Launchbar mit, die schnellen Zugriff auf die Build- und Run-Funktionen ermöglicht. Über sie bestimmt der Entwickler schneller und unkomplizierter als zuvor, ob das Programm lokal oder auf einem entfernten System starten soll. Das ist unter anderem bei der Programmierung von eingebetteten Systemen oder Einplatinenrechnern wie dem Arduino nützlich.
Gitte
Wer mit dem Versionskontrollsystem Git arbeitet, darf sich ebenfalls über kleinere Verbesserungen freuen. Bei einem Konflikt zeigt die Staging-View die Optionen »Checkout Ours« oder »Checkout Theirs« . Damit lässt sich die entsprechende Datei schnell wieder in den Zustand vor dem Konflikt versetzen. Stashed-Commits erfolgen jetzt wahlweise direkt über den Commit-Viewer. Darüber hinaus gab es kleinere Verbesserungen in der interaktiven Rebase- und der History-View.
Der Eclipse Team Provider Egit unterstützt jetzt auch Git Flow. In diesem Modell entwickeln die Programmierer jedes Feature in einem eigenen Branch, um am Ende alle in einem gemeinsamen zusammenzuführen. Eclipse bietet dazu im entsprechenden Kontextmenü die passenden Funktionen an, etwa »Start Feature« oder »Start Release« . Programmierer können zudem leicht zwischen den verschiedenen Branches und somit Features hin und her wechseln.
Fazit
Gegenüber der Vorversion Luna überrascht Eclipse Mars nicht mit revolutionären Änderungen, dafür aber mit zahlreichen neuen kleinen Features, die das Entwicklerleben vereinfachen. Die IDE erlaubt eine höhere Arbeitsgeschwindigkeit, integriert das Buildtool Maven eleganter und unterstützt Gradle. Das neue Oomph-Projekt erleichtert vor allem die Installation und Pflege von mehreren parallelen Eclipse-Installationen und lässt sich zugleich kinderleicht bedienen. Devops dürften sich besonders über die Docker-Funktionen freuen. Bestehende Plugins für Eclipse 4.4 Luna sollen laut Eclipse Migration Guide [10] auch unter Mars funktionieren.
Infos
- Eclipse: http://www.eclipse.org
- CDT-Projekt: https://eclipse.org/cdt/
- Zu Eclipse Mars gehörende Projekte: https://projects.eclipse.org/releases/mars
- Oomph-Projekt: https://projects.eclipse.org/projects/tools.oomph
- Bundle Pooling: http://wiki.eclipse.org/Equinox_p2_Getting_Started#Bundle_pooling
- Eclipse Marketplace: https://marketplace.eclipse.org
- Docker: https://www.docker.com
- Eclipse Thym: https://www.eclipse.org/thym/
- Apache Cordova: https://cordova.apache.org
- Eclipse Migration Guide: http://www.eclipse.org/eclipse/development/porting/eclipse_4_5_porting_guide.html













