Maven e Gradle
Perche servono strumenti di build
Sezione intitolata “Perche servono strumenti di build”Nei primi esercizi compili con:
javac NomeFile.javaFunziona bene per programmi piccoli.
Nei progetti reali ci sono molte classi, librerie esterne, test e file di configurazione. Gestire tutto a mano diventa scomodo.
Qui entrano in gioco Maven e Gradle.
Cosa fanno Maven e Gradle
Sezione intitolata “Cosa fanno Maven e Gradle”Uno strumento di build puo:
- compilare il progetto
- scaricare librerie esterne
- eseguire test
- creare un file pronto da distribuire
- mantenere una struttura ordinata
Le librerie esterne si chiamano spesso dipendenze: pezzi di codice scritti da altri che il tuo progetto usa.
Maven usa un file chiamato pom.xml.
Una struttura tipica e:
progetto/ pom.xml src/ main/ java/ test/ java/Il codice principale va in:
src/main/javaI test vanno in:
src/test/javaComandi comuni:
mvn compilemvn testmvn packageGradle usa spesso un file build.gradle oppure build.gradle.kts.
Anche Gradle usa una struttura simile:
progetto/ build.gradle src/ main/ java/ test/ java/Comandi comuni:
gradle buildgradle testIn molti progetti troverai uno script incluso:
./gradlew buildSu Windows:
gradlew.bat buildQuesto permette di usare Gradle senza installarlo manualmente.
Dipendenze
Sezione intitolata “Dipendenze”Se vuoi usare una libreria esterna, la dichiari nel file di build.
Non devi scaricare manualmente file .jar e copiarli in giro.
Lo strumento di build legge la configurazione, scarica cio che serve e lo collega al progetto.
Quando ti servono davvero
Sezione intitolata “Quando ti servono davvero”All’inizio puoi continuare con javac e java.
Maven o Gradle diventano utili quando:
- il progetto ha molte classi
- vuoi usare librerie esterne
- vuoi scrivere test automatici
- lavori con altre persone
- usi framework come Spring
Regola pratica
Sezione intitolata “Regola pratica”Per imparare la sintassi Java, parti semplice.
Quando il programma inizia ad avere piu cartelle, librerie e test, passa a Maven o Gradle.
Non sono “Java avanzato” nel senso del linguaggio, ma sono parte della vita quotidiana di molti progetti Java.