Passer au contenu principal

Jetty

Ouvrir dans ChatGPT

Le plugin Maven Jetty exécute l'application dans un serveur Jetty intégré directement à partir du projet. Un projet archétype définit compile webforj:watch jetty:run comme son objectif Maven par défaut, donc mvn sans arguments compile l'application, démarre le frontend watch, et sert l'application sur Jetty.

Exigences

Un projet Jetty déclare lui-même les outils de développement, dans le profil utilisé pour les exécutions de développement :

pom.xml
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-devtools</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>

La version provient du Bill of Materials (BOM) webforJ. Le profil maintient la dépendance hors du war packagé. Un projet créé à partir d'un archétype a ce profil.

Activer le rechargement en direct

webforj.conf
webforj.devtools.livereload.enabled = true

Les clés sont les mêmes que celles qu'une application Spring Boot définit dans application.properties, répertoriées dans les paramètres.

Changements de classe

Avec un outil de hotswap configuré, l'outil applique les modifications de classe et Jetty ne redéploie rien. Deux propriétés Jetty soutiennent cela, et un projet archétype définit les deux :

  • scan est 0, ce qui désactive le scan de fichiers de Jetty.
  • deployMode reste non défini. Hotswap nécessite le mode forké, et le plugin le sélectionne. Une construction qui définit deployMode à une autre valeur démarre sans l'outil et le journalise.

Sans un outil de hotswap, réglez scan sur un intervalle en secondes et Jetty redéploiera l'application lorsque les classes ou ressources compilées changent :

PropriétéDescriptionPar défaut
scanIntervalle en secondes entre les scans de la sortie compilée, défini comme la propriété jetty.scan. 0 désactive le scan. Des intervalles plus longs diminuent la charge et retardent le redéploiement.1

Considérations d'utilisation

  • Mémoire et CPU : de faibles valeurs scan augmentent la consommation de ressources sur de grands projets. Des intervalles plus longs la diminuent et retardent le redéploiement.
  • Développement uniquement : le plugin Jetty n'est pas destiné aux déploiements en production.
  • Sessions : un redéploiement peut supprimer les sessions utilisateur. Un outil de hotswap applique les modifications sans redéploiement, et la session survit.