Jetty
Das Maven Jetty-Plugin führt die Anwendung in einem eingebetteten Jetty-Server direkt aus dem Projekt aus. Ein Archetypen-Projekt setzt compile webforj:watch jetty:run als sein Standard-Maven-Ziel, sodass mvn ohne Argumente die App kompiliert, die Frontend-Überwachung startet und die App auf Jetty bereitstellt.
Anforderungen
Ein Jetty-Projekt erklärt die Entwicklungswerkzeuge selbst im Profil, das für Entwicklungsdurchläufe verwendet wird:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-devtools</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
Die Version stammt aus dem webforJ Bill of Materials (BOM). Das Profil hält die Abhängigkeit aus dem gepackten WAR heraus. Ein aus einem Archetypen erstelltes Projekt hat dieses Profil.
Live-Reload aktivieren
webforj.devtools.livereload.enabled = true
Die Schlüssel sind dieselben, die eine Spring Boot-App in application.properties setzt, wie in den Einstellungen aufgelistet.
Klassenänderungen
Mit einem Hotswap-Tool, das konfiguriert ist, wendet das Tool Klassenänderungen an und Jetty redeployt nichts. Zwei Jetty-Eigenschaften unterstützen dies, und ein Archetypen-Projekt setzt beide:
scanist0, was die Dateiscannung von Jetty deaktiviert.deployModebleibt ungesetzt. Hotswap erfordert den geforkten Modus, und das Plugin wählt ihn aus. Ein Build, derdeployModeauf einen anderen Wert setzt, startet ohne das Tool und protokolliert dies.
Ohne ein Hotswap-Tool setzen Sie scan auf ein Intervall in Sekunden, und Jetty redeployt die App, wenn sich kompilierte Klassen oder Ressourcen ändern:
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
scan | Intervall in Sekunden zwischen Scans des kompilierten Outputs, gesetzt als jetty.scan-Eigenschaft. 0 schaltet das Scannen aus. Längere Intervalle reduzieren die Last und verzögern das Redeploy. | 1 |
Nutzungshinweise
- Speicher und CPU: niedrige
scan-Werte erhöhen den Ressourcenverbrauch bei großen Projekten. Längere Intervalle senken ihn und verzögern das Redeploy. - Nur Entwicklung: Das Jetty-Plugin ist nicht für Produktionsbereitstellungen gedacht.
- Sitzungen: Ein Redeploy kann Benutzersitzungen unterbrechen. Ein Hotswap-Tool wendet Änderungen ohne ein Redeploy an, und die Sitzung bleibt bestehen.