Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
wie muss man in IntelliJ Ultimate HotSwap einstellen, damit es so funktioniert wie in Eclipse?
Gemeint ist, man muss nicht jedes mal eine laufende Anwendung neu starten, wenn man Quellcode ändert, insbesondere Spring Boot u. Quarkus. Ich habe da einige Optionen gefunden, welche aber alle nicht oder nur unzureichend funktionieren. Mit zunehmender Größe einiger Projekte wird das auch zunehmend nerviger. Leider wird in den fraglichen Projekten ein Setup mit IntelliJ vorgeschrieben, bzw. es werden fertige VM's für die Entwickler bereitgestellt und nur diese haben Zugang zu den DB's und Quellcode-Repos.
Danke.
Wenn das (noch) nicht funktioniert, dann evtl. in den Settings checken, ob
Advanced Settings - Compiler - Allow auto-make to start even if developed application currently is running
getickt ist.
Dann ist eigentlich nur noch ein CTRL-S nach Codeänderungen notwendig um den Refresh zu initiieren.
Da war noch ein Setting, das fällt mir aber gerade nicht mehr ein und war wohl auch nur bei der Community Edition notwendig?
Es funktioniert leider nicht zufriedenstellend. Die Einstellungen waren bereits so durchgeführt. Die Klassen werden weiterhin nicht aktualisiert und es erscheint entweder ein "Code changed" Button und die Anwendung wird dadurch neu gestartet oder die Anwendung startet von selbst 2x hintereinander neu.
Ich bin der Meinung, solange ich keine Klassen- bzw. Methodensignaturen oder Konstanten ändere, dann muss eine Anwendung überhaupt nicht neu gestartet werden (HotSwap) oder IntelliJ soll das beim Speichern selbst machen, sobald keine Kompilerfehler vorhanden sind. In Eclipse geschieht das auch automatisch - einzige Bedingung man muss evtl. die Caches für JPA-Entitys abschalten, da die von den Frameworks dynamisch veränderten Entity-Klassen ClassCastExeptions auslösen können.
Die Wartezeiten für die ständigen Neustarts sind sehr lästig, besonders wenn 2x neu gestartet wird.
Mit den Developer Tools kann man arbeiten, das startet einen kleinen Miniserver, der auf Änderungen vom Bytecode achtet und dann das eigentliche Programm neu startet. Dann muss man in IntelliJ immer das Projekt neu bauen mit Control+F9. Das dauert allerdings.
Dass das Projekt neu gebaut werden muss, ist eigentlich ganz einleuchtend, wenn man überlegt, was normalerweise beim Bildprozess noch passiert. So laufen Annotationsprozessoren, die möglicherweise neue Datentypen generieren. Über AOP kann Bytecode umgebogen werden und so weiter.
Als Spring Framework Anwendungsentwickler funktioniert die Kontextmenü-Funktion zum Reloading ("Compile and Reload file") hier ohne Neubau der Anwendung und ohne Redeploy bei mir problemlos. In der Regel dauert es unter zehn Sekunden, bis die Anwendung mit den geänderten Klassen arbeitet. Dabei sind auch Annotationen (Lombok) und AOP im Einsatz.
Auch in Swing Client Applikationen ist das Reloading mittels Kontext-Menü in der IDE ohne Probleme möglich (solange keine imports / Methoden / Parameter / hinzukommen oder entfernt wurden).
Die Anwendung muss im Debug-Modus laufen, sonst geht es nicht.
"Build project automatically" habe ich nicht aktiviert. Das wäre ja kontraproduktiv, wenn ich nur die Implementierung einer Methode ändere.
So leidensfähig bin ich leider nicht. So lange die Probleme in VSCode nicht zu groß werden, verwende ich jetzt dieses. Multi-Projekt-Setups funktionieren dort aber auch nicht fehlerfrei. Zumindest ist das dort aber alles etwas schneller und Frontend-Code lässt sich auch gut umsetzen.
Ich habe festgestellt, dass meine Kollegen die gleichen Probleme haben. Allerdings können diese sich damit besser abfinden. Meiner Meinung nach ist der Arbeitstag zu kurz, um immer wieder zu testen, ob nun das richtige Select-Statement ausgeführt wird und ob die geänderten Beans geladen wurden.
Ich versuche alles um schneller und effektiver zu werden, dann ist es schon enttäuschend, wenn eine IDE für hunderte € im Abo, den ganzen Ablauf bremst.