public code v2
This commit is contained in:
@@ -23,35 +23,61 @@ Flintstones permite definir un problema de decisión (alternativas, criterios, e
|
||||
|
||||
## Requisitos
|
||||
|
||||
| Herramienta | Versión mínima | Notas |
|
||||
|---|---|---|
|
||||
| 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 |
|
||||
El único requisito es tener **Docker Desktop** instalado. Todo lo demás (Java 11, Maven, GTK…) corre dentro del contenedor.
|
||||
|
||||
> **Sin Docker:** necesitas JDK 11 y Maven 3.8+.
|
||||
> **Con Docker:** solo Docker. El contenedor lleva Maven 3.8.6 y JDK 11.
|
||||
| Herramienta | Versión mínima | Dónde conseguirla |
|
||||
|---|---|---|
|
||||
| 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
|
||||
./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
|
||||
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/
|
||||
RCP product-linux.gtk.x86_64.zip
|
||||
@@ -59,7 +85,9 @@ releng/flintstones.application.product/target/products/
|
||||
RCP product-win32.win32.x86_64.zip
|
||||
```
|
||||
|
||||
### Sin Docker
|
||||
### Sin Docker (avanzado)
|
||||
|
||||
Requiere JDK 11 y Maven 3.8+ instalados localmente:
|
||||
|
||||
```bash
|
||||
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 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
|
||||
mvn clean install
|
||||
echo =^> Compilando Flintstones con Maven 3.8 + JDK 11 en Docker...
|
||||
docker compose run --rm build
|
||||
if errorlevel 1 (
|
||||
echo ERROR: la compilacion ha fallado.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
pause
|
||||
pause
|
||||
pause
|
||||
echo.
|
||||
echo =^> Build completado. Productos en %APP_DIR%\
|
||||
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
|
||||
# Levanta Flintstones en Docker y abre el navegador automáticamente.
|
||||
# Requiere que el proyecto esté compilado (./build.sh).
|
||||
set -e
|
||||
|
||||
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
|
||||
echo "==> El proyecto no está compilado. Compilando primero..."
|
||||
echo "==> Proyecto no compilado. Compilando (esto tarda la primera vez)..."
|
||||
docker compose run --rm build
|
||||
fi
|
||||
|
||||
echo "==> Construyendo imagen de ejecución..."
|
||||
docker compose build run
|
||||
# 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
|
||||
fi
|
||||
|
||||
echo "==> Arrancando Flintstones..."
|
||||
docker compose up -d run
|
||||
# 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..."
|
||||
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
|
||||
if curl -s http://localhost:6080 > /dev/null 2>&1; then
|
||||
echo " lista."
|
||||
break
|
||||
fi
|
||||
echo -n "."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "==> Abriendo navegador en http://localhost:6080/vnc.html?autoconnect=true"
|
||||
open "http://localhost:6080/vnc.html?autoconnect=true"
|
||||
# 5. Abrir el navegador
|
||||
echo "==> Abriendo $URL"
|
||||
open "$URL"
|
||||
|
||||
echo ""
|
||||
echo "Para parar la aplicación: docker compose stop run"
|
||||
echo "Para ver los logs: docker compose logs -f run"
|
||||
echo " Para parar: docker compose stop run"
|
||||
echo " Para los logs: docker compose logs -f run"
|
||||
|
||||
Reference in New Issue
Block a user