In Zukunft wird WildFly Swarm in Thorntail umbenannt und strebt ein Wachstum an, das nicht an WildFly gebunden ist.
Bisher war die Entwicklung der WildFly Swarm-App schwierig, da sie keine Hot-Reloads verarbeiten kann.
WildFly Swarm hatte keine andere Wahl, als ein UberJar (ausführbares JAR) zu erstellen und es mit dem Befehl java -jar
auszuführen.
Das UberJAR von WildFly Swawrm kann zwischen zehn Megabyte und über 100 Megabyte liegen, was einige Zeit in Anspruch nimmt, um es in der Entwicklung zu verpacken.
Mit dem Ersatz von Thorntail ist das Developer Tool jetzt verfügbar und kann im laufenden Betrieb neu geladen werden. (Ein Mechanismus, der nur die geänderte Klasse neu lädt, ohne alle Anwendungen zu packen oder erneut bereitzustellen, während der Anwendungsserver ausgeführt wird.)
Da ich diesmal die Funktion ausprobiert habe, werde ich die folgende Ausführungsprozedur zusammen mit dem Beispielcode schreiben.
Zum Zeitpunkt dieses Schreibens war Thorntail nur in der SNAPSHOT-Version verfügbar und wurde nicht für Maven Central freigegeben, sodass $ HOME / .m2 verwendet werden kann, um Abhängigkeiten von den SNAPSHOT-Versionsbibliotheken und -Plugins von Thorntail aufzulösen. Fügen Sie
https: // oss.sonatype.org / content / repositories / snapshots als Snapshot-Repository zu / settings.xml
hinzu.
xml:$HOME/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<snapshots />
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots />
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
Ich habe den Beispielcode veröffentlicht, den ich auf GitHub erstellt habe. https://github.com/sightseeker/thorntail-demo
Ich werde das Verfahren zum Erstellen eines Projekts von Grund auf weglassen.
Überprüfen Sie den Beispielcode
git clone [email protected]:sightseeker/thorntail-demo.git && cd thorntail-demo
In die Quelle wird nur eine JAX-RS (REST-API) geschrieben.
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── sightseekerstudio
│ ├── MyApplication.java
│ └── MyResource.java
└── resources
└── META-INF
├── application.properties
└── beans.xml
Das folgende Verfahren verwendet zwei Terminalfenster. (Für die Thorntail-Ausführung (A) und für den Kompilierungsprozess (B))
Terminal A.
#Erstes Erstellen der App
mvn package
#Laden Sie den Entwicklungsmodus neu und starten Sie Thorntail
THORNTAIL_DEV_MODE=reload
./target/thorntail-demo-1.0-SNAPSHOT-bin/bin/run.sh
#Das Serverprotokoll wird in der Standardausgabe angezeigt
Greifen Sie mit einem Browser usw. auf http: // localhost: 8080 zu und bestätigen Sie, dass "Hello World" angezeigt wird.
Ich benutze das Fizzed Watcher Maven Plugin, um pom.xml so einzustellen, dass das Kompilieren mit der Änderungserkennung funktioniert. Der folgende Befehl führt compile aus, wenn eine Dateiänderung erkannt wird.
Terminal B.
mvn fizzed-watcher:run
Versuchen Sie zu diesem Zeitpunkt, die Hello World-Zeichenfolge von "src / main / java / com / sichtseekerstudio / MyResource.java" mit einem Editor oder ähnlichem zu ändern.
Anschließend wird die Kompilierung in Terminal B ausgeführt, und die in der Kompilierung geänderte Klasse von "MyResource" wird in Terminal A neu geladen.
Sie können erneut zu http: // localhost: 8080 gehen und sehen, dass die geänderte Zeichenfolge angezeigt wird.
Recommended Posts