À l'avenir, WildFly Swarm sera renommé Thorntail et visera une croissance qui n'est pas liée par WildFly.
Jusqu'à présent, le développement de l'application WildFly Swarm a été difficile car elle ne peut pas gérer les recharges à chaud.
WildFly Swarm n'avait pas d'autre choix que de créer un UberJar (exécutable JAR) et de l'exécuter avec la commande java -jar
.
L'UberJAR de WildFly Swawrm peut aller de dizaines de mégaoctets à plus de 100 mégaoctets, ce qui prend du temps à être intégré au développement.
Avec le remplacement de Thorntail, l'outil de développement est maintenant disponible et peut être rechargé à chaud. (Un mécanisme qui recharge uniquement la classe modifiée sans empaquetage ni redéploiement de toutes les applications pendant que le serveur d'applications est en cours d'exécution)
Depuis que j'ai essayé la fonction cette fois, j'écrirai la procédure d'exécution ci-dessous avec l'exemple de code.
Au moment d'écrire ces lignes, Thorntail n'était disponible que dans la version SNAPSHOT et n'avait pas été publié sur Maven Central, donc $ HOME / .m2 peut être utilisé pour résoudre les dépendances sur les bibliothèques et plugins de la version SNAPSHOT de Thorntail. Ajoutez
https: // oss.sonatype.org / content / repositories / snapshots comme référentiel de snapshots à / settings.xml
.
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>
J'ai publié l'exemple de code que j'ai créé sur GitHub. https://github.com/sightseeker/thorntail-demo
J'omettrai la procédure pour créer un projet à partir de zéro.
Découvrez un exemple de code
git clone [email protected]:sightseeker/thorntail-demo.git && cd thorntail-demo
Un seul JAX-RS (API REST) est écrit dans la source.
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── sightseekerstudio
│ ├── MyApplication.java
│ └── MyResource.java
└── resources
└── META-INF
├── application.properties
└── beans.xml
La procédure suivante utilise deux fenêtres de terminal. (Pour l'exécution de Thorntail (A) et pour le processus de compilation (B))
Terminal A
#Version initiale de l'application
mvn package
#Recharger le mode de développement et lancer Thorntail
THORNTAIL_DEV_MODE=reload
./target/thorntail-demo-1.0-SNAPSHOT-bin/bin/run.sh
#Le journal du serveur apparaît dans la sortie standard
Accédez à http: // localhost: 8080 avec un navigateur, etc. et confirmez que «Hello World» est affiché.
J'utilise Fizzed Watcher Maven Plugin pour définir pom.xml afin que la compilation fonctionne avec la détection des changements. La commande suivante exécutera la compilation lorsqu'une modification de fichier est détectée.
Terminal B
mvn fizzed-watcher:run
À ce moment, essayez de changer la chaîne de caractères Hello World de src / main / java / com / sightseekerstudio / MyResource.java
avec un éditeur ou autre.
Ensuite, la compilation sera exécutée dans le Terminal B, puis la classe de MyResource
qui a été modifiée dans la compilation sera rechargée dans le Terminal A.
Vous pouvez à nouveau accéder à http: // localhost: 8080 et voir que la chaîne modifiée s'affiche.
Recommended Posts