I (heart) Maven

di Flavio

Maven Con un ritardo di circa 3 anni, finalmente ho provato Maven. Amore a prima vista. Ho sempre avuto una passione un po’ malsana per i framework che cercano di fare tutto al tuo posto e ti obbligano a lavorare a modo loro… Il punto è che Maven ti fa lavorare bene. Ti costringe a usare un repository centrale per le dipendenze, evitando di mettere JAR nel sistema di source control. Ti crea una directory per gli unit test e il comando mvn test per eseguirli. Centralizza tutte le informazioni sul progetto in un file XML, il Project Object Model. Genera anche il sito web del progetto con moltissime informazioni utili.

Va bene, ammetto di essere un po’ in contro tendenza: tutti parlano di linguaggi di scripting, framework a prova di dummy, il software come commodity… Tutto molto bello, finché non ti viene un’idea nuova e vuoi realizzarla. E allora devi programmare, non customizzare. In un linguaggio che possibilmente ti avverte in anticipo se stai cercando di dividere un intero per… una stringa. Non basta scaricare pacchetti a caso dalla rete e sbatterci la testa finché il proprio accrocchetto open source si tiene in piedi per miracolo. Fine del rant :)

Maven è un tool estremamente potente ma anche molto semplice da usare per chi ha una certa esperienza di Java e di Ant, di cui è in qualche modo il successore. Per installare Maven basta scaricare il pacchetto e scompattarlo nella directory da dove verrà eseguito e aggiungere queste righe al proprio ~/.bash_profile

export M2_HOME=~/path/maven-x.x.x
PATH=$M2_HOME/bin:$PATH

Adesso creiamo un nuovo progetto:

mvn archetype:create -DgroupId=it.dominio.applicazione -DartifactId=applicazione

Questo comando creerà una nuova directory applicazione con lo scheletro del progetto già funzionante. A questo punto per compilare e creare il JAR basta fare:

cd applicazione
mvn package

E per eseguire il progetto:

java -cp target/applicazione-1.0-SNAPSHOT.jar it.dominio.applicazione.App

Ancora sto scoprendo e sperimentando tutte le funzionalità offerte, ma sono sicuro che, per quanto mi riguarda, non ci sarà più un progetto Java senza l’aiuto di Maven.

Scrivi un commento