public code v2
This commit is contained in:
@@ -23,35 +23,61 @@ Flintstones permite definir un problema de decisión (alternativas, criterios, e
|
|||||||
|
|
||||||
## Requisitos
|
## Requisitos
|
||||||
|
|
||||||
| Herramienta | Versión mínima | Notas |
|
El único requisito es tener **Docker Desktop** instalado. Todo lo demás (Java 11, Maven, GTK…) corre dentro del contenedor.
|
||||||
|---|---|---|
|
|
||||||
| Docker | 20+ | Para compilar sin instalar nada más |
|
|
||||||
| Java | 11 | Solo para ejecutar el producto compilado |
|
|
||||||
| Maven | 3.8+ | Solo si compilas fuera de Docker |
|
|
||||||
|
|
||||||
> **Sin Docker:** necesitas JDK 11 y Maven 3.8+.
|
| Herramienta | Versión mínima | Dónde conseguirla |
|
||||||
> **Con Docker:** solo Docker. El contenedor lleva Maven 3.8.6 y JDK 11.
|
|---|---|---|
|
||||||
|
| Docker Desktop | 20+ | [docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop/) |
|
||||||
|
|
||||||
|
> En Windows, Docker Desktop debe estar en modo **Linux containers** (es el modo por defecto).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Compilar
|
## Compilar y ejecutar
|
||||||
|
|
||||||
### Con Docker (recomendado)
|
### macOS / Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./build.sh
|
./run.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
O directamente:
|
### Windows
|
||||||
|
|
||||||
|
```bat
|
||||||
|
run.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Eso es todo. El script gestiona automáticamente cada situación:
|
||||||
|
|
||||||
|
| Situación | Qué hace el script |
|
||||||
|
|---|---|
|
||||||
|
| Primera vez | Compila el proyecto + construye la imagen Docker + arranca + abre el navegador |
|
||||||
|
| Ya compilado, imagen ya construida | Solo arranca el contenedor + abre el navegador |
|
||||||
|
| Ya está corriendo | Abre el navegador directamente |
|
||||||
|
|
||||||
|
La primera compilación descarga dependencias de Eclipse (~1-2 GB) y tarda unos minutos. Las siguientes arrancan en segundos.
|
||||||
|
|
||||||
|
La aplicación aparece en el navegador en **`http://localhost:6080`** — no hace falta instalar ningún cliente VNC ni ningún visor especial.
|
||||||
|
|
||||||
|
Para parar la aplicación:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose run --rm build
|
docker compose stop run # macOS / Linux
|
||||||
|
```
|
||||||
|
```bat
|
||||||
|
docker compose stop run :: Windows
|
||||||
```
|
```
|
||||||
|
|
||||||
La primera vez descarga dependencias de Eclipse (~1-2 GB). Las siguientes compilaciones usan caché y son mucho más rápidas.
|
### Solo compilar (sin ejecutar)
|
||||||
|
|
||||||
Los productos quedan en:
|
```bash
|
||||||
|
./build.sh # macOS / Linux
|
||||||
|
```
|
||||||
|
```bat
|
||||||
|
build.bat :: Windows
|
||||||
|
```
|
||||||
|
|
||||||
|
Los productos compilados quedan en:
|
||||||
```
|
```
|
||||||
releng/flintstones.application.product/target/products/
|
releng/flintstones.application.product/target/products/
|
||||||
RCP product-linux.gtk.x86_64.zip
|
RCP product-linux.gtk.x86_64.zip
|
||||||
@@ -59,7 +85,9 @@ releng/flintstones.application.product/target/products/
|
|||||||
RCP product-win32.win32.x86_64.zip
|
RCP product-win32.win32.x86_64.zip
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sin Docker
|
### Sin Docker (avanzado)
|
||||||
|
|
||||||
|
Requiere JDK 11 y Maven 3.8+ instalados localmente:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mvn clean install -Dmaven.test.skip=true
|
mvn clean install -Dmaven.test.skip=true
|
||||||
@@ -67,48 +95,6 @@ mvn clean install -Dmaven.test.skip=true
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Ejecutar
|
|
||||||
|
|
||||||
### macOS
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd releng/flintstones.application.product/target/products/
|
|
||||||
unzip "RCP product-macosx.cocoa.x86_64.zip"
|
|
||||||
open Eclipse.app
|
|
||||||
```
|
|
||||||
|
|
||||||
> El ejecutable se llama `Eclipse.app` por herencia del launcher de Eclipse RCP.
|
|
||||||
> En Apple Silicon (M1/M2/M3) funciona vía Rosetta 2 (arquitectura x86_64).
|
|
||||||
|
|
||||||
### Linux
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd releng/flintstones.application.product/target/products/
|
|
||||||
unzip "RCP product-linux.gtk.x86_64.zip"
|
|
||||||
./"RCP product"/linux/gtk/x86_64/flinstones
|
|
||||||
```
|
|
||||||
|
|
||||||
Requiere GTK3:
|
|
||||||
```bash
|
|
||||||
sudo apt install libgtk-3-0 # Debian/Ubuntu
|
|
||||||
```
|
|
||||||
|
|
||||||
### Linux con VNC (desde Docker)
|
|
||||||
|
|
||||||
Levanta el contenedor con display virtual accesible en `localhost:5900`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose run --rm run-vnc
|
|
||||||
```
|
|
||||||
|
|
||||||
Conéctate con cualquier cliente VNC (RealVNC, TigerVNC, etc.) a `localhost:5900`.
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
Descomprime `RCP product-win32.win32.x86_64.zip` y ejecuta `flinstones.exe`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Métodos disponibles
|
## Métodos disponibles
|
||||||
|
|
||||||
### Métodos clásicos / Ranking
|
### Métodos clásicos / Ranking
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
:: Hacer los SET
|
@echo off
|
||||||
|
:: Compila Flintstones en Docker (no hace falta tener Maven ni Java 11 local).
|
||||||
|
setlocal
|
||||||
|
|
||||||
:: Actualizar POM
|
set APP_DIR=releng\flintstones.application.product\target\products
|
||||||
|
|
||||||
:: Build
|
echo =^> Compilando Flintstones con Maven 3.8 + JDK 11 en Docker...
|
||||||
mvn clean install
|
docker compose run --rm build
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: la compilacion ha fallado.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
pause
|
echo.
|
||||||
pause
|
echo =^> Build completado. Productos en %APP_DIR%\
|
||||||
pause
|
dir /b "%APP_DIR%\*.zip" 2>nul
|
||||||
|
|
||||||
|
endlocal
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
@echo off
|
||||||
|
:: Levanta Flintstones en Docker y abre el navegador automaticamente.
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
set APP_DIR=releng\flintstones.application.product\target\products\RCP product\linux\gtk\x86_64
|
||||||
|
set IMAGE=flintstones-develop-run
|
||||||
|
set URL=http://localhost:6080/vnc.html?autoconnect=true^&resize=scale
|
||||||
|
|
||||||
|
:: 1. Compilar si no existe el binario
|
||||||
|
if not exist "%APP_DIR%\eclipse" (
|
||||||
|
echo =^> Proyecto no compilado. Compilando (esto tarda la primera vez)...
|
||||||
|
docker compose run --rm build
|
||||||
|
if errorlevel 1 goto error
|
||||||
|
)
|
||||||
|
|
||||||
|
:: 2. Construir imagen de ejecucion si no existe
|
||||||
|
docker image inspect %IMAGE% >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo =^> Construyendo imagen Docker de ejecucion (solo la primera vez)...
|
||||||
|
docker compose build run
|
||||||
|
if errorlevel 1 goto error
|
||||||
|
)
|
||||||
|
|
||||||
|
:: 3. Arrancar el contenedor
|
||||||
|
docker compose ps run | findstr "running" >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo =^> Arrancando Flintstones...
|
||||||
|
docker compose up -d run
|
||||||
|
if errorlevel 1 goto error
|
||||||
|
) else (
|
||||||
|
echo =^> Flintstones ya esta en marcha.
|
||||||
|
)
|
||||||
|
|
||||||
|
:: 4. Esperar a que noVNC este listo
|
||||||
|
echo =^> Esperando conexion...
|
||||||
|
:wait
|
||||||
|
curl -s http://localhost:6080 >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
timeout /t 1 /nobreak >nul
|
||||||
|
goto wait
|
||||||
|
)
|
||||||
|
|
||||||
|
:: 5. Abrir el navegador
|
||||||
|
echo =^> Abriendo %URL%
|
||||||
|
start "" "%URL%"
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Para parar: docker compose stop run
|
||||||
|
echo Para los logs: docker compose logs -f run
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo.
|
||||||
|
echo ERROR: algo ha fallado. Revisa los logs con: docker compose logs run
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:end
|
||||||
|
endlocal
|
||||||
@@ -1,32 +1,46 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Levanta Flintstones en Docker y abre el navegador automáticamente.
|
# Levanta Flintstones en Docker y abre el navegador automáticamente.
|
||||||
# Requiere que el proyecto esté compilado (./build.sh).
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
APP_DIR="releng/flintstones.application.product/target/products/RCP product/linux/gtk/x86_64"
|
APP_DIR="releng/flintstones.application.product/target/products/RCP product/linux/gtk/x86_64"
|
||||||
|
IMAGE="flintstones-develop-run"
|
||||||
|
URL="http://localhost:6080/vnc.html?autoconnect=true&resize=scale"
|
||||||
|
|
||||||
|
# 1. Compilar el proyecto si no existe el binario
|
||||||
if [ ! -f "$APP_DIR/eclipse" ]; then
|
if [ ! -f "$APP_DIR/eclipse" ]; then
|
||||||
echo "==> El proyecto no está compilado. Compilando primero..."
|
echo "==> Proyecto no compilado. Compilando (esto tarda la primera vez)..."
|
||||||
docker compose run --rm build
|
docker compose run --rm build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "==> Construyendo imagen de ejecución..."
|
# 2. Construir la imagen de ejecución si no existe
|
||||||
|
if ! docker image inspect "$IMAGE" > /dev/null 2>&1; then
|
||||||
|
echo "==> Construyendo imagen Docker de ejecución (solo la primera vez)..."
|
||||||
docker compose build run
|
docker compose build run
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Arrancar el contenedor (o reutilizarlo si ya corre)
|
||||||
|
if docker compose ps run | grep -q "running"; then
|
||||||
|
echo "==> Flintstones ya está en marcha."
|
||||||
|
else
|
||||||
echo "==> Arrancando Flintstones..."
|
echo "==> Arrancando Flintstones..."
|
||||||
docker compose up -d run
|
docker compose up -d run
|
||||||
|
fi
|
||||||
|
|
||||||
echo "==> Esperando a que el servidor esté listo..."
|
# 4. Esperar a que noVNC esté listo
|
||||||
|
echo -n "==> Esperando conexión"
|
||||||
for i in $(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
if curl -s http://localhost:6080 > /dev/null 2>&1; then
|
if curl -s http://localhost:6080 > /dev/null 2>&1; then
|
||||||
|
echo " lista."
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
echo -n "."
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "==> Abriendo navegador en http://localhost:6080/vnc.html?autoconnect=true"
|
# 5. Abrir el navegador
|
||||||
open "http://localhost:6080/vnc.html?autoconnect=true"
|
echo "==> Abriendo $URL"
|
||||||
|
open "$URL"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Para parar la aplicación: docker compose stop run"
|
echo " Para parar: docker compose stop run"
|
||||||
echo "Para ver los logs: docker compose logs -f run"
|
echo " Para los logs: docker compose logs -f run"
|
||||||
|
|||||||
Reference in New Issue
Block a user