Kann ein Multi-Modul m2eclipse / WTP-Projekt get Dienstprogramm-Module in WEB-INF / classes zum Einsatz?
-
25-09-2019 - |
Frage
Wir verwenden derzeit MyEclipse mit seiner eingebauten in Maven4MyEclipse Integration und die integrierten in J2EE-Server-Unterstützung, sondern wollen regelmäßige Sonnenfinsternis konvertieren über (Helios spezifisch) in der Lage sein, seinen 64-Bit auf Windows-Installation zu verwenden. (MyEclipse noch nicht unterstützt 64-Bit-Windows.)
Bisher habe ich einen funktionierenden Prototyp von Helios bekam Eclipse mit dem WTP mit m2eclipse Plugin unserer großen Web-Anwendung tomcat bereitstellen. Die Bereitstellung ist ein wenig rechenintensiv, aber es funktioniert und die App startet.
Was kritisch ist anders hier, wie die abhängigen Projekte eingesetzt werden. In unserer MyEclipse Umgebung wurden alle abhängigen Projekte eingesetzt explodierte in die WEB-INF / classes Ordner, und so, während der Server ausgeführt wurde, ein Wechsel zu einer Java-Klasse in dem IDE würde nur die betroffene Datei (en) auf die Kopie Server WEB-INF / classes und Hot-Swap der Klasse in die JVM und ... Boom - Live-Änderung an den Server. GREAT für das Debuggen.
In meiner helios Umwandlung jedoch alle abhängigen Projekte erhalten JARED und in WEB-INF / lib. Dies hat den Vorteil, tatsächlich aussieht wie, was unsere wirklichen Maven gebaute Produktions Bild aussieht, aber die Entwicklungsumgebung wird durch diesen in stark benachteiligt, dass die Hot-Swap-Fähigkeit scheint völlig verloren. Hier wird, wenn ich eine Java-Klasse in einem abhängigen Projekt ändern, m2eclipse die JAR neu verpacken, dass die eingesetzte Web-Anwendung synchronisiert ist out, und erneut veröffentlicht die gesamte Anwendung. Nicht nur dies ein Problem in ist, dass die gesamte Web-Anwendung muss Zyklus (etwas uns ehrlich gesagt nicht gut gegeben machen seine Größe und riesige Initialisierungszeit), es ist auch eine unangenehme Verzögerung in Eclipse tut sie erneut. (Für unsere Anwendung dies dauert etwa eine Minute oder zwei.)
Also meine Frage ist: Gibt es eine Möglichkeit, Änderungen innerhalb abhängiger Projekte zu Hot-Swap zum Laufe JVM zu erhalten und eingesetzt Dateien zu ersetzen, ohne dass diese fiesen Republish Strafe? Ich gehe davon aus, dass diese Mittel, um diese Klassendateien auf den WEB-INF / classes bereitstellen, wissen aber nicht sicher, dass (a) möglich, oder (b) wirklich notwendig als Teil dieser Lösung.
Was tun andere, diese zu lösen? Ist es auflösbar?
Vielen Dank im Voraus!
Lösung
Ich denke, dass Sie für die Lösung suchen, beschrieben in Re: WTP Tomcat Hot deploy mit m2eclipse :
Wenn Sie aktivieren die „Module Serve Ohne Publishing“Option, dann ein Spezialglas ist mit dem Tomcat hinzugefügt Server, der die Tomcat-Unterstützung erlaubt WTP in den „Klassenpfad“ zu steuern, die Web-Anwendung. Auch Dienstprogramm Projekte sind nicht in zu Gläsern zusammengesetzt. Stattdessen (s) das Java-Ausgabe-Verzeichnis von die Versorgungsprojekte sind enthalten in der „Classpath“ der Bahn Anwendung, effektiv dient der Klasse-Dateien direkt. Wenn Sie deaktivieren der Auto-Laden für den Kontext, und laufen im Debug-Modus, Änderungen, die Sie machen Klassen können Hot-Code ersetzt werden, so der Kontext muss nicht neu laden. ich glauben, dies zu erreichen, was Sie suchen.
Um dies zu tun:
- Gehen Sie auf die Server Ansicht
- Doppelklicken Sie auf Ihr Tomcat-Server die Server-Einstellungen zu öffnen
- In Serveroptionen , wählen Sie die Serve-Module ohne Veröffentlichung
- In Verlag , wählen Sie die Nie veröffentlichen automatisch