Aktuell besteht ein Bug in dem ansonsten so nützlichen Live Hover Informationen in Spring Tool Suite 4. Viele Anwendungen laufen ohne einen speziellen Application Context, so dass die Anwendung unter / erreichbar ist.
# Set application context path
server.servlet.context-path=/spring-mvc-thymeleaf-demo
Setzt man allerdings einen Application Context, dann ist der anzeigte Link fehlerhaft. Es fehlt der Path unter dem die Anwendung läuft, d.h. der Link funktioniert effektiv nicht (siehe Bild unten).
Bugfix
Mit dem nächsten Punktrelease ist Abhilfe in Sicht. Unter Issue 129 wird das Ticket bearbeitet. Dann sollte der Live Hover Bug behoben sein.
Hier sind meine Favorieten unter den Eclipse Plugins. Ich stelle die Ansammlung hier zur Verfügung, weil mir das Anmelden unter http://accounts.eclipse.org für den Marketplace zu aufwendig ist. Es muss ein Passwort mit mindestens 12 Zeichen vergeben werden und dieses ist auch nicht über einen PasswortManager bei einer Neuinstallation innerhalb von Eclispe verfügbar.
Coole Plugins
Infinitest
Continous testing wird mit diesem Plugin realität. Werden Änderungen an Tests betreffenden Dateien durchgeführt, dann wird automatisch ein JUnit lauf ausgeführt. Sehr praktisch.
MouseFeed
MouseFeed zeigt vorhandene Shortcuts zu einer Aktion an, so kann man diese schneller erlernen, weil diese jedesmal kurz eingeblendet wird.
DBeaver
Die Community Edition des DBeaver ist kostenlos und eines der besten Tools im Umgang mit Datenbanken. DBeaver gibt es als Plugin für Eclipse und als Standalone Version, da es auf Eclipse basiert.
SpotBugs
SpotBugs ist der designierte Nachfolger von dem populären FindBugs Plugin für Eclipse.
Thymeleaf
Das Thymeleaf Plugin stellt in HTML Dokumenten, die den Namespace von Thymeleaf besitzen, eine Autovervollständigung (CTRL + SPACE) der Attribute von Thymeleaf.
Eclipse STS4 in M12 ist entpackt. Ich habe die aktuellste Version von Lombok mit dem integrieren Installer installiert. Auf dem Arch Linux System wird hier der absolute Pfad eingetragen. Leider gibt es folgenden Fehler:
16.08.2018
Hurra! Es ist geschafft. Endlich läuft Eclipse mit Gradle und Lombok unter einer Java Version > 8 !!! Aktuell verwende ich das letzte Milestone-Release M14 der STS14 mit der letzten Version v1.18.2 und der letzten Gradle Version 4.9.
JDK11
16.08.2018
Achtung: es gibt kein offizielles Paket für die EA-Version. Man findet sie auch nicht so leicht im AUR, da dass Paket jdk-devel heißt. Besser wäre jdk11-ea. Dann würde mann es mit yaourt -s jdk11 auch als EA finden.
yaourt --noconfirm -S jdk-devel
sudo archlinux-java set java-11-jdk
DBeaver ist zurzeit mein Favorit bei den Datenbank-Tools.
Highlights von DBeaver
Die Liste der Features von DBeaver ist lang. Es werden sehr viele Datenbanksysteme unterstützt. Da DBeaver RCP von Eclipse verwendet, kann DBeaver nahtlos in Eclipse integriert werden. DBeaver ist natürlich im Marktplatz von Eclipse vorhanden.
Neues in DBeaver
Mit der Version 5.1.4 sind ein paar Korrekturen und Neuerungen eingeflossen.
Data viewer
Die Navigation mit Foreign keys/references wurde verbessert
Der Textfilter Editor wurde gefixt
Die Historie der Volltextsuche wurde gefixed
Der SQL Formatter wurde verbessert und einige Fehler beseitigt
MariaDB
Der Editor für Benutzerrecht wurde verbessert
Das Erstellen einer View wurde gefixt
Plattform
DBeaver basiert jetzt auf Eclipse Photon Plattform. Dieses behebt zugleich ein paar alte UI Bugs und verbessert die Performance unter Linux und MacOS.
Was ist Eclipse Code Mining? Code Mining ist nichts anderes als CodeLense von Microsoft. CodeLens ist jedoch markenrechtlich durch Microsoft geschützt. Folglich muss für das sich noch in der Entwicklung befindene Plugin ein anderer Name her. Das Plugin wird auf GitHub gehostet und von Angelo Zerr entwickelt. Unterstützt wird das ganze von Lars Vogel.
Installation
Da sich das Plugin noch in der Entwicklung befindet, ist es noch kein Bestandteil der Eclipse Distribution und muss über eine UpdateSite installiert werden. Installieren Sie einfach alles aus dem Repository.
Nach dem üblichen Neustart der Workbench steht Ihnen das Plugin zur Verfügung.
Einstellungen
Per Default ist das Feature erst einmal noch nicht aktiv.
Die Spring Tool Suite hat mit M11 einen neuen Milestone erreicht
Aus dem Changelog kann man die Unterstützung des JDK10 entnehmen. Das scannen der Projekte wurde bescheunigt, indem der gesamte Prozess jetzt auf dem Java Tooling von Eclipse beruht. Die Spring Tool Suite basiert ab sofort auf Photon. Es wird der letzte Milestone (aktuell ist Photon M6) verwendet.
Fazit
Insgesamt macht die Suite einen guten Eindruck. Probleme die zuvor bestanden existieren nicht mehr und der Workspace kann mit aktuellen Java Projekten verwendet werden. Ich bin weiter gespannt wie sich das Produkt entwickelt.
Ist Lombok unter Eclipse installiert und läuft Eclipse auf einer VM größer Java 8, dann kommt es beim aktualisieren des Gradle Modells unter Eclipse zu einer Fehlermeldung die erst einmal keinen direkten Rückschluss auf Lombok zulässt.
Gradle Buildfehler
Ist Lombok im Klassenpfad der VM von Eclipse geladen, dann kommt es zu folgender Fehlermeldung wenn man ein Gradle Projekt in der Workbench aktualisiert.
Errors occurred during the build.
Errors running builder 'Java Builder' on project 'tornet'.
Unknown constant pool type 19
Startet man Eclipse auf der Konsole, so kann man zumindest den Stacktrace zu dem BuildError sehen.
java.lang.AssertionError: Unknown constant pool type 19
at lombok.bytecode.ClassFileMetaData.<init>(ClassFileMetaData.java:104)
at lombok.bytecode.PreventNullAnalysisRemover.applyTransformations(PreventNullAnalysisRemover.java:42)
at lombok.core.PostCompiler.applyTransformations(PostCompiler.java:43)
at lombok.eclipse.agent.PatchFixesShadowLoaded.runPostCompiler(PatchFixesShadowLoaded.java:41)
at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:115)
at lombok.launch.PatchFixesHider$LombokDeps.runPostCompiler(PatchFixesHider.java:155)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContents(AbstractImageBuilder.java:880)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(AbstractImageBuilder.java:871)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:200)
at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:615)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:472)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:423)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:383)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:211)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:315)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:76)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:259)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:795)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:216)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:259)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:312)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:315)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:367)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:388)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
Diesen kann man sehen das es zu einem Assertion Error kommt.
Lösung
Zur Zeit ist mir noch keine Lösung hierzu bekannt und es hilft nur den Java Agenten von Lombok aus der Eclipse.ini auszukommentieren.
-vmargs
--add-modules=ALL-SYSTEM
-Xms40m
-Xmx1200m
# build error in projects...
#-javaagent:lombok.j
Leider gibt es immer noch Problemen (performance regression) bei aktuellen Eclipse Versionen ( > Photon M6). Um dennoch mit Eclipse arbeiten zu können, kann man die IDE in der Eclipse.ini anpassen
Anpassung an der Eclipse.ini
Es muss der Parameter –launcher.GTK_version eingetragen werden. Wichtig hierbei ist, dass der Parameter vor dem Abschnitt -vmargs eingetragen wird.
Die STS (Spring Tools Suite) wurde von Grund auf neu geschrieben und erhält mit der Spring Tools 4 einen neuen Nachfolger. Spring Tools 4 befindet sich aktuell (seit Dezember 2017) in der Betaphase und wird im Juli 2018 den GA Status erlangen. Bis dahin wird STS 3.9.X weiterhin mit Updates versorgt.
Spring 4 Tools ist eine Neuentwicklung und setzt auf das Language Server Protocol (LSP) auf und somit werden alle Features auch in anderen Komponenten (IDEs, Editoren etc.) nutzbar. Unter anderem auch unter VS Code von Microsoft.
Kompatibilität
Komponenten aus STS können auch weiterhin in Spring 4 Tools als AddOn Komponenten genutzt werden.
Alt bekanntes
Das Boot Dashboard View bleibt erhalten. Es erhält aber ein nützliches Feature. Es können Beans und Properties der laufenden Anwenung per Icon angezeigt werden.
Neue Features in Eclipse
Super schnelle Navigation in Spring Projetken
STRG + 66 startet den Dialog.
@/
@+
Installation
Es gibt das Beta als Bundle oder aber auch als Repository: