Build e Deploy¶
Ordine di Build¶
Il progetto non ha un pom.xml root. Ogni modulo deve essere buildato separatamente, rispettando le dipendenze.
graph TD
subgraph "Fase 1: Librerie JAR (mvn install)"
M["MLib"] --> |install| R1[ ]
E["EeMlib"] --> |install| R1
MFA["MobileFineAdapterLib"] --> |install| R1
OJ["OtticoServiceJPA"] --> |install| R1
RC["REST Common"] --> |install| R1
end
subgraph "Fase 2: Applicazioni WAR (mvn package)"
R1 --> GA["GeCo.Alfa"]
R1 --> GS["GecoService"]
R1 --> ELB["ElaborazioneService"]
R1 --> CONN["ConnessioneService"]
R1 --> OTT["OtticoService"]
R1 --> VPN["VpnMctcService"]
R1 --> MFAS["MobileFineAdapterServer"]
end
subgraph "Fase 3: Packaging"
MFAS --> MFAEAR["MobileFineAdapterServerEar"]
end
subgraph "Fase 4: Quarkus (Java 11)"
R1 --> REST["REST (Quarkus)"]
end
style M fill:#4CAF50,color:#fff
style E fill:#4CAF50,color:#fff
style MFA fill:#4CAF50,color:#fff
style OJ fill:#4CAF50,color:#fff
style RC fill:#4CAF50,color:#fff
Comandi Build per Modulo¶
Librerie JAR (devono essere installate)¶
# Obbligatorio: installare nel local Maven repository
cd MLib && mvn clean install
cd EeMlib && mvn clean install
cd MobileFineAdapterLib && mvn clean install
cd OtticoServiceJPA && mvn clean install
cd "REST Common" && mvn clean install
Applicazioni WAR¶
# UI principale
cd GeCo.Alfa && mvn clean package
# Service layer
cd GecoService && mvn clean package
# Elaborazione documenti
cd ElaborazioneService && mvn clean package
# Gateway PA
cd ConnessioneService && mvn clean package
# Ottico
cd OtticoService && mvn clean package
# MCTC VPN
cd VpnMctcService && mvn clean package
# Mobile (Spring Boot)
cd MobileFineAdapterServer && mvn clean package
cd MobileFineAdapterServerEar && mvn clean package
Quarkus (Java 11)¶
# Dev mode con live reload
cd REST && ./mvnw compile quarkus:dev
# Package per deploy
cd REST && ./mvnw clean package
Build Selettivo¶
Dopo aver modificato un solo modulo, ricostruisci solo quello e le sue dipendenze:
| Ho modificato... | Devo ricostruire... |
|---|---|
| MLib | MLib (install) + tutti i WAR che lo usano |
| EeMlib | EeMlib (install) + MobileFineAdapterServer, ElaborazioneService |
| GeCo.Alfa | Solo GeCo.Alfa (package) |
| ConnessioneService | Solo ConnessioneService (package) |
| REST Common | REST Common (install) + REST |
| REST | Solo REST (package o quarkus:dev) |
Deploy su Docker Locale¶
Deploy Singolo Modulo¶
# 1. Build il modulo
cd ~/vscode-projects/sgv-ge.co
mvn clean package -pl GeCo.Alfa
# 2. Copia il WAR nella directory deployments del container Docker
cp GeCo.Alfa/target/GeCo.Alfa.war \
~/vscode-projects/sgv2-docker/be-geco/deployments/
# 3. WildFly auto-deploya il WAR (verifica logs)
cd ~/vscode-projects/sgv2-docker
docker-compose logs -f be-geco
Mapping Moduli - Container Docker¶
| Modulo | Container Docker | Directory Deployments |
|---|---|---|
| GeCo.Alfa | be-geco |
be-geco/deployments/ |
| GecoService | geco-service |
geco-service/deployments/ |
| ElaborazioneService | be-elb |
be-elb/deployments/ |
| ConnessioneService | fe-con |
fe-con/deployments/ |
| OtticoService | be-ott |
be-ott/deployments/ |
Deploy Multiplo¶
cd ~/vscode-projects/sgv-ge.co
# Build dipendenze
cd MLib && mvn clean install && cd ..
# Build moduli applicativi
cd GeCo.Alfa && mvn clean package && cd ..
cd GecoService && mvn clean package && cd ..
cd ElaborazioneService && mvn clean package && cd ..
# Deploy
cp GeCo.Alfa/target/GeCo.Alfa.war ~/vscode-projects/sgv2-docker/be-geco/deployments/
cp GecoService/target/GecoService.war ~/vscode-projects/sgv2-docker/geco-service/deployments/
cp ElaborazioneService/target/ElaborazioneService.war ~/vscode-projects/sgv2-docker/be-elb/deployments/
Verifica Deploy¶
# Verifica stato container
cd ~/vscode-projects/sgv2-docker && docker-compose ps
# Verifica deploy WAR
docker-compose exec be-geco ls -la /opt/wildfly/standalone/deployments/
# Verifica logs WildFly
docker-compose exec be-geco tail -f /opt/wildfly/standalone/log/server.log
# Test in browser
open http://localhost:8080/GeCo.Alfa
Workflow Quotidiano¶
- Mattina: Avvia ambiente Docker (
make start) - Sviluppo: Modifica codice in
sgv-ge.co - Build:
mvn clean package -pl <modulo> - Deploy: Copia WAR in
sgv2-docker/<container>/deployments/ - Test: Verifica in browser su
http://localhost:8080/ - Iterazione: Codice → Build → Deploy → Test
- Sera (opzionale): Ferma ambiente (
make stop)