martedì 27 dicembre 2011

Introduzione a Maven

Per qualche tempo ho girato intorno a Maven, senza capire bene cosa fosse e come potessi usarlo per i miei progetti: poi ho provato ad usarlo, e me ne sono letteralmente innamorato.
Intanto diciamo cosa è Maven: "Apache Maven é un tool per la software project management and comprehension. Basato sul concetto di Project Object Model (POM), Maven può gestire build, reporting e documentazione di un progetto, da un punto centrale di informazione" Questa è la definizione (magari mal tradotta) dal sito Apache Software Foundation. Ma in pratica, cosa fa Maven? Gestisce, da un solo file di configurazione, la struttura e le dipendenze di progetto ed aiuta ad automatizzare le fasi di build, test, documentazione e in alcuni casi deploy di un progetto.
Facciamo un esempio: a me piace usare Spring per il mio sviluppo. E' un framework potente, flessibile, ma ha una grossa complicazione. La gestione delle dipendenze. Non è facile ricordarsi di includere tutte le dipendenze, se si usa una repository non è comodo aggiungere i jar o definire un posto dove metterli. Maven risolve proprio questo aspetto: nel file descrittore del progetto basta indicare come dipendenza Spring e maven si occuperà di scaricare tutte le dipendenze dal repository appropriato, compilare i sorgenti e impacchettarli nel modo corretto. Inoltre, ed ancor prima di questo, definisce una struttura standard per i progetti: si può quindi lavorare allo stesso progetto con Eclipse piuttosto che con Netbeans senza dover stravolgere la struttura dei sorgenti.
E questo è solo l'inizio. Se avrò tempo mi piacerebbe fare un esempio su come usare Maven per i progetti GWT, perché ci sono piccoli accorgimenti da usare.