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.jarbin/startweb/con tus páginas y CSSrun.batyrun.shMETA-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
jlinkgarantiza portabilidad y optimización. - CDS (Class Data Sharing) opcional acelera el startup y reduce consumo de memoria.
- Los scripts
runpermiten 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