Jetty
El plugin Maven Jetty ejecuta la aplicación en un servidor Jetty embebido directamente desde el proyecto. Un proyecto arquetipo establece compile webforj:watch jetty:run como su objetivo Maven predeterminado, por lo que mvn sin argumentos compila la aplicación, inicia el frontend watch y sirve la aplicación en Jetty.
Requisitos
Un proyecto Jetty declara las herramientas de desarrollo por sí mismo, en el perfil utilizado para las ejecuciones de desarrollo:
<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 versión proviene del Bill of Materials (BOM) de webforJ. El perfil mantiene la dependencia fuera del war empaquetado. Un proyecto creado a partir de un arquetipo tiene este perfil.
Activar recarga en vivo
webforj.devtools.livereload.enabled = true
Las claves son las mismas que una aplicación Spring Boot establece en application.properties, listadas en los ajustes.
Cambios en clases
Con una herramienta de hotswap configurada, la herramienta aplica los cambios en clases y Jetty no vuelve a desplegar nada. Dos propiedades de Jetty soportan esto, y un proyecto arquetipo establece ambas:
scanes0, lo que desactiva el escaneo de archivos de Jetty.deployModepermanece sin establecer. Hotswap requiere el modo forkeado, y el plugin lo selecciona. Un build que establecedeployModeen otro valor comienza sin la herramienta y lo registra.
Sin una herramienta de hotswap, se debe establecer scan en un intervalo en segundos y Jetty vuelve a desplegar la aplicación cuando las clases compiladas o los recursos cambian:
| Propiedad | Descripción | Predeterminado |
|---|---|---|
scan | Intervalo en segundos entre escaneos de la salida compilada, establecido como la propiedad jetty.scan. 0 desactiva el escaneo. Intervalos más largos reducen la carga y retrasan el redepliegue. | 1 |
Consideraciones de uso
- Memoria y CPU: valores bajos de
scanaumentan el consumo de recursos en proyectos grandes. Intervalos más largos lo reducen y retrasan el redepliegue. - Solo desarrollo: el plugin Jetty no es para despliegues en producción.
- Sesiones: un redepliegue puede eliminar sesiones de usuario. Una herramienta de hotswap aplica cambios sin un redepliegue, y la sesión sobrevive.