Jetty
De Maven Jetty-plugin draait de app in een ingebedde Jetty-server recht vanuit het project. Een archetype-project stelt compile webforj:watch jetty:run in als zijn standaard Maven-doel, zodat mvn zonder argumenten de app compileert, de frontend watch start, en de app op Jetty serveert.
Vereisten
Een Jetty-project declareert zelf de ontwikkeltools, in het profiel dat wordt gebruikt voor ontwikkelrun:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-devtools</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
De versie komt van de webforJ Bill of Materials (BOM). Het profiel houdt de afhankelijkheid uit de verpakte war. Een project dat is gemaakt vanuit een archetype heeft dit profiel.
Live reload inschakelen
webforj.devtools.livereload.enabled = true
De sleutels zijn dezelfde als die een Spring Boot-app instelt in application.properties, vermeld in de instellingen.
Klassenwijzigingen
Met een hotswap-tool geconfigureerd, past de tool klassenwijzigingen toe en Jetty redeploys niks. Twee Jetty-eigenschappen ondersteunen dit, en een archetype-project stelt beide in:
scanis0, wat de bestandsscan van Jetty uitschakelt.deployModeblijft niet ingesteld. Hotswap vereist de geforkte modus, en de plugin selecteert deze. Een build diedeployModeop een andere waarde instelt, start zonder de tool en logt dit.
Zonder een hotswap-tool, stel scan in op een interval in seconden en Jetty redeploys de app wanneer gecompileerde klassen of hulpmiddelen veranderen:
| Eigenschap | Beschrijving | Standaard |
|---|---|---|
scan | Interval in seconden tussen scans van de gecompileerde output, ingesteld als de jetty.scan eigenschap. 0 schakelt scanning uit. Langere intervallen verlagen de belasting en vertragen de redeploy. | 1 |
Gebruiksoverwegingen
- Geheugen en CPU: lage
scan-waarden verhogen het resourceverbruik op grote projecten. Langere intervallen verlagen het en vertragen de redeploy. - Alleen ontwikkeling: de Jetty-plugin is niet bedoeld voor productie-implementaties.
- Sessies: een redeploy kan gebruikerssessies beëindigen. Een hotswap-tool past wijzigingen toe zonder een redeploy, en de sessie blijft behouden.