Helidon MP - Proyecto Standalone
1. Estructura del proyecto para distribución
La estructura recomendada para que tu proyecto sea standalone es:
helidon_prueba/ ├── app/ │ └── quickstart-mp.jar ├── bin/ │ └── start ├── web/ │ ├── index.html │ ├── segunda.html │ └── simple.css ├── run.bat ├── run.sh └── META-INF/ └── microprofile-config.properties
Explicación rápida:
- app/: Contiene el JAR empaquetado de tu aplicación Helidon MP.
- bin/: Scripts de arranque generados por Helidon (JRI).
- web/: Archivos estáticos (HTML, CSS, JS).
- run.bat y run.sh: Scripts para ejecutar la app en Windows y Linux/Mac.
- META-INF/microprofile-config.properties: Configuración del servidor y rutas de contenido estático.
2. Crear runtime image standalone con jlink
Ejecuta el siguiente comando para generar un runtime image:
mvn package -Pjlink-image
Esto genera el runtime en target/quickstart-mp-jri/
, que incluye:
- Tu JAR
quickstart-mp.jar
- Dependencias de Helidon
- Solo los módulos de Java necesarios
Opcionalmente, si querés omitir el CDS para reducir tamaño:
mvn package -Pjlink-image -Djlink.image.addClassDataSharingArchive=false
3. Scripts de ejecución
a) run.sh (Linux/Mac)
#!/bin/sh DIR="$(cd "$(dirname "$0")" && pwd)" if [ -x "$DIR/bin/start" ]; then "$DIR/bin/start" else echo "No se encontró bin/start" fi
Dar permisos de ejecución:
chmod +x run.sh
b) run.bat (Windows)
@echo off set DIR=%~dp0 if exist "%DIR%bin\start.bat" ( "%DIR%bin\start.bat" ) else if exist "%DIR%bin\start" ( "%DIR%bin\start" ) else ( echo No se encontró bin\start ) pause
4. Preparar la carpeta para distribución
Verificá que todos los elementos estén presentes:
app/quickstart-mp.jar
bin/start
web/
con tus páginas y CSSrun.bat
yrun.sh
META-INF/microprofile-config.properties
Luego comprimí todo en un archivo RAR o ZIP:
rar a helidon_prueba.rar helidon_prueba/
5. Conclusión
- El proyecto ya es standalone y listo para Windows y Linux/Mac.
- El runtime generado con
jlink
garantiza portabilidad y optimización. - CDS (Class Data Sharing) opcional acelera el startup y reduce consumo de memoria.
- Los scripts
run
permiten ejecución directa sin depender de terminal o IDE.
Recordá: siempre mantener la estructura de carpetas intacta (
app
, bin
, web
) para que la app standalone funcione correctamente.
Comentarios
Publicar un comentario