Setup Ambiente Sviluppo¶
Prerequisiti¶
Software Richiesto¶
| Software | Versione | Note |
|---|---|---|
| Java JDK | 8 (legacy modules), 11 (REST) | Oracle o OpenJDK |
| Maven | 3.6+ | Build tool |
| PostgreSQL | 12+ | Database principale |
| MongoDB | 4.4+ | Solo per OtticoService |
| WildFly | 18+ | Application server |
| Node.js | 18+ | Per Quarkus dev mode |
| Git | 2.30+ | Version control |
IDE¶
- Consigliato: VSCode con workspace
sgv-geco.code-workspace - Alternative: IntelliJ IDEA, Eclipse
Estensioni VSCode¶
# Esegui script setup
./vscode-setup/vscode-extension.sh
# O installa manualmente:
code --install-extension vscjava.vscode-java-pack
code --install-extension redhat.vscode-xml
code --install-extension vscjava.vscode-maven
Configurazione¶
1. Database Locale (Docker)¶
Il modo piu rapido per avviare il database e usare il setup Docker:
# Clone repository Docker (se non presente)
cd ~/vscode-projects
git clone <url-sgv2-docker> sgv2-docker
# Setup iniziale
cd sgv2-docker
cp sample.env .env
# Edita .env con le tue configurazioni
# Avvia database
make start
Oppure setup manuale PostgreSQL:
# Crea database
createdb sgv_dev
# Crea utenti
psql -d sgv_dev -c "CREATE USER own_generale WITH PASSWORD 'password';"
psql -d sgv_dev -c "CREATE USER own_c_a662 WITH PASSWORD 'password';"
# Importa schema (se disponibile dump)
psql -d sgv_dev < schema.sql
Endpoint locale tipico: jdbc:postgresql://localhost:5432/sgv_dev
2. Maven Settings¶
Configura ~/.m2/settings.xml con i profili necessari:
<settings>
<profiles>
<profile>
<id>sgv-dev</id>
<properties>
<db.url>jdbc:postgresql://localhost:5432/sgv_dev</db.url>
<db.user>own_c_a662</db.user>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>sgv-dev</activeProfile>
</activeProfiles>
</settings>
3. WildFly¶
Per sviluppo locale, WildFly e gestito tramite Docker (sgv2-docker):
Il container WildFly monta la directory deployments/ per hot-deploy dei WAR.
Per installazione manuale WildFly:
- Scarica WildFly 18+
- Configura datasource JNDI
java:jboss/PostgresDSPoolGenerale - Configura
ApplicationRealmper autenticazione - Configura moduli per driver PostgreSQL e MongoDB
4. Docker Development Environment¶
Vedi la guida Docker per la configurazione completa dell'ambiente Docker.
cd ~/vscode-projects/sgv2-docker
make start # Avvia tutti i servizi
make stop # Ferma i servizi
make help # Lista comandi disponibili
Primo Build¶
cd ~/vscode-projects/sgv-ge.co
# 1. Build librerie core (obbligatorio prima di tutto)
cd MLib && mvn clean install && cd ..
cd EeMlib && mvn clean install && cd ..
cd MobileFineAdapterLib && mvn clean install && cd ..
cd OtticoServiceJPA && mvn clean install && cd ..
cd "REST Common" && mvn clean install && cd ..
# 2. Build applicazione principale
cd GeCo.Alfa && mvn clean package && cd ..
# 3. Verifica build riuscito
ls GeCo.Alfa/target/GeCo.Alfa.war
Verifica Ambiente¶
Dopo il setup, verifica che tutto funzioni:
| Verifica | Comando | Risultato Atteso |
|---|---|---|
| Java 8 | java -version |
1.8.x |
| Java 11 | /path/to/java11 -version |
11.x |
| Maven | mvn -version |
3.6+ |
| PostgreSQL | psql -l |
Lista database |
| Docker | docker ps |
Container attivi |
| MLib build | cd MLib && mvn clean install |
BUILD SUCCESS |
Troubleshooting¶
"Cannot find symbol" per classi MLib¶
Causa: MLib non installato nel Maven local repository.
"Widgetset does not contain implementation"¶
Causa: Vaadin widgetset non compilato dopo modifica dipendenze.
Errore connessione database¶
Causa: Database non avviato o credenziali errate.
# Verifica che Docker sia attivo
cd ~/vscode-projects/sgv2-docker && docker-compose ps
# Verifica connessione
psql -h localhost -U own_c_a662 -d sgv_dev
Conflitto porte¶
Causa: Porta gia in uso da altro servizio.