Nonostante Apache Maven sia giunto alla versione 3.1.1, molti sviluppatori non sono ancora entrati in contatto con questo build tool.

Ma facciamo un passo indietro! Cos’è Apache Maven?
Maven è uno strumento per la gestione dei progetti Java e la compilazione del codice, che offre funzionalità in più rispetto ad Apache Ant.

Grazie a Maven e a queste sue funzionalità ci sarà più facile:

  • Organizzare i progetti in maniera pulita
  • Standardizzare la struttura di un progetto (Progetto – Modulo)
  • Scaricare librerie e risolvere le dipendenze (mediante l’uso del repository maven o di altri repository, presenti sul web, configurati in appositi file)
  • Automatizzare i test
  • Utilizzare plugin (es: plugin Maven GWT)

Voglio sottolineare fin da subito la complessità di Maven agli occhi di chi gli si avvicina per la prima volta. Diciamo che configurare un progetto con plugin, repository ed i vari file di configurazione, la prima volta non è proprio rose è fiori. E lo dico per esperienza personale! Ho perso un po’ di tempo a configurare Maven e ad entrare “in simpatia” con questo strumento, ma se sono arrivato a scriverne un articolo significa che alla fine ne ho tratto beneficio.

Per quanto riguarda i componenti principali di Apache Maven, ce ne sono alcuni che non possono essere sicuramente trascurati.
Vediamoli insieme:

  • file pom.xml: file di configurazione per plugin, dipendenze e repository
  • goal: sono funzioni eseguibili su singoli progetti. La struttura più semplice per eseguire un goal è mvn <nome_goal>, come per esempio mvn compile che permette di eseguire la compilazione del progetto
  • repository: Maven crea la cartella .repository sotto la home dell’utente, che servirà per la gestione delle librerie
  • settings.xml: file di configurazione per repository locali, proxy, profili e sicurezza. Questo file può essere specificato a due livelli. Se fornisce la configurazione per un singolo utente lo si crea sotto ${user.home}/.m2/settings.xml, mentre se fornisce la configurazione per tutti gli utenti Maven di una macchina lo si crea sotto ${maven.home}/conf/settings.xml

Con questa breve introduzione sui componenti principali di Maven termino il primo post di ‘avvicinamento’ ad Apache Maven.

A proposito, qualcuno di voi lo usa ?