
Una questione su cui si dibatte molto oggigiorno nei forum e sui canali social è quale sia il miglior strumento di build automation per i progetti Java tra il tradizionale Ant, l’innovativo Maven e l’emergente Gradle. La problematica si è accentuata da quando Gradle ha visto un recente incremento della sua popolarità – già elevata in precedenza – grazie alla sua elezione come strumento ufficiale di building per Android Studio. Tanto per chiarire il contesto, intendiamo con build automation l’esecuzione in automatico di quella serie di operazioni che solitamente lo sviluppatore dovrebbe svolgere manualmente per trasformare il proprio codice sorgente in qualcosa di eseguibile: compilazione, packaging, testing, deployment, etc. Quanto detto va proiettato in senso lato: la build automation esiste nel web, nel mobile nonchè nella programmazione desktop e quant’altro quindi parliamo di strumenti utili in generale.
Tutti questi tool sono comunque in evoluzione. Ant e Maven hanno rilasciato le ultime versioni pochi mesi fa – rispettivamente: la 1.9.6 il primo a luglio e la release 3.3.3 ad aprile il secondo – mentre Gradle 2.8 ha visto la luce anche più recentemente, il 20 ottobre scorso.
Gradle sta conquistando grandi fette della popolazione di sviluppatori in quanto ha saputo accorpare importanti pregi degli altri due:
- come Ant, suddivide il processo di building in task più piccoli e mirati (i ben noti target di Ant) concatenabili tra loro ed eseguibili in base ad un sistema di precedenze;
- come Maven, permette di basare il lavoro su schemi predefiniti secondo il principio della convention-over-configuration nonchè di gestire in maniera automatica e molto efficiente le dipendenze del progetto.
Oltre a ciò, Gradle ha piazzato ulteriori mosse vincenti come l’introduzione di Groovy al posto di XML per la definizione dei task, rendendo molto più flessibile la definizione delle operazioni da svolgere, nonchè l’ottima integrazione con Ant e Maven che evita agli sviluppatori di perdere il tanto lavoro già svolto agevolandone la conversione.
Il successo di Gradle mette in luce anche come la build automation stia cambiando nel tempo. La sola gestione delle funzionalità basilari come compilazione e packaging non è più sempre sufficiente. Molti contesti di sviluppo richiedono che un build tool possa gestire efficientemente progetti realizzati in più linguaggi di programmazione, preveda sin dall’inizio la pianificazione di strategie di testing e permetta di realizzare artefatti finali in versioni diverse per usi vari.
Ciò sarebbe fattibile anche con Maven e Ant ma Gradle permette di farlo con dei build file manutenibili e sintetici, seguendo schemi preimpostati in generale ma personalizzabili all’occorrenza.
Non farà certo dimenticare Ant e Maven ma Gradle appare sempre più una soluzione buona per tutti gli usi.
E voi ne avete già apprezzato i vantaggi oppure avete idee diverse ? Vi aspettiamo nei commenti.
No Responses to “Ant, Maven e Gradle: scenari di build automation in Java”