2016-03-22 10 views
4

Ich interessiere mich für das Wildfly Swarm-Projekt, um Fat-jar-JavaEE-Anwendung zu erstellen, aber ich kann nicht herausfinden, wie Sie geänderte Klassen in der IDE "hot bereitstellen".Entwickeln mit Wildfly Swarm in der IDE ohne Neustart - "hot deploy" irgendwo?

Immer wenn ich eine Codezeile oder eine JSF-XHTML-Datei ändere, muss ich derzeit die gesamte Anwendung neu starten, was 7s oder so dauert. Das ist nicht sehr produktiv.

Spring Boot bietet eine Spring-Boot-devtools, die mindestens einige Klassen neu geladen, traditionelle App-Server bieten Hot-Deploy-Protokolle. Gibt es etwas Ähnliches für Wildfly Swarm? Würde JRebel hier helfen?

+1

JRebel sollte da helfen. –

Antwort

4

Sie können WildFly Swarm als Java-Anwendung direkt aus Quellen in Ihrer bevorzugten IDE ausführen, indem Sie Ihre eigene Main-Klasse oder die org.wildfly.swarm.Swarm-Klasse aufrufen. Dies erspart Ihnen den Verpackungsschritt.

Wie beim Warmladen von Klassen kann die JVM wie üblich nicht-strukturelle Änderungen neu laden, muss aber immer neu gestartet werden, wenn Sie eine Klassensignatur "brechen". Ich habe es nicht ausprobiert, aber es ist sehr wahrscheinlich, dass JRebel dort helfen könnte.

Wenn Sie ein Eclipse-Benutzer sind, können Sie wildfly-hive ausprobieren. Es versucht, Schwarm-Apps automatisch zu erkennen und erstellt in der Serveransicht passende Server. Sie müssen nur auf Start/Debug/Stop klicken, ähnlich den Standardservern in Eclipse.

+0

Ich habe org.wildfly.swarm.Swarm in meinem Eclipse-Projekt mit Wildfly-Schwarm versucht. Und es funktioniert! Aber das Problem ist, dass die erzeugte Kriegsdatei anders ist. Also zum Beispiel ist mein Projekt Name Test.war aber während der Debug-Bereitstellung erstellt es so etwas, 507ac020-cc98-4956-9c88-418869842dcf.war ... so was passiert ist, dass meine Bean-Lookup fehlschlägt. –

-3

Ich würde vorschlagen, IntelliJ Idee zu verwenden. Seine JavaEE-Projektvorlage arbeitet auf den meisten Anwendungsservern mit Hot-Deploy.

+1

Wildfly Swarm ist kein Anwendungsserver. Es bündelt nur die Wildfly-Bibliotheken in ein dickes Glas. Soweit ich weiß, öffnet es keinen Hot-Deploy-Port, den die IDE benutzen könnte (aber vielleicht könnte ich das tun, das wollte ich wissen). – lathspell

1

Meine Lösung bestand darin, IntelliJ IDEA zu verwenden und ein explodiertes WAR-Artefakt aus meinen Quellen zu erstellen. Enthalte keine der Abhängigkeiten von WildFly Swarm, sondern alles andere.

Dann können Sie normale alte WildFly Standalone mit der JBoss-Laufkonfiguration verwenden, und IntelliJ wird den explodierten Krieg bereitstellen. Von dort können Sie hot swap, debuggen, etc.

Für die Entwicklung, führen Sie Ihren Code auf WildFly Standalone. Verwenden Sie für die Produktion das WildFly Swarm-Glas. Das funktioniert perfekt für mich, und ich verwende diese Methode seit Monaten ohne viele Probleme.

+1

Ich versuche das exakt gleiche zu erreichen, habe aber keine Ahnung wo ich anfangen soll. Wie gehen Sie mit dem Ausschluss von Schwarm-abhängigen Abhängigkeiten um? – Nicolas

Verwandte Themen