Lavorare con Maven in Eclipse

In un articolo di qualche tempo fa abbiamo dato un’occhiata generale ad Apache Maven, esaminando alcuni dei vantaggi che l’utilizzo di questo strumento può portare nello sviluppo di un progetto Java.

In questo post lasciamo un attimo da parte la teoria e vediamo come, a livello pratico, possiamo lavorare con Maven all’interno di Eclipse IDE.

Nelle ultime versioni di Eclipse (Mars, Neon, Oxigen e probabilmente anche qualcuna delle precedenti), il supporto per Maven è disponibile di default tramite il plugin m2e. Se la vostra versione dell’IDE non dispone del plugin pre-installato, vi consiglio caldamente di aggiornare interamente l’ambiente di sviluppo. Altrimenti potete aggiungere il solo plugin mancante (se non sapete come fare, ne abbiamo parlato qui).

Creare un nuovo progetto

La creazione di un nuovo progetto Maven è piuttosto semplice.

Il primo bottone a sinistra, nella barra degli strumenti principale di Eclipse, consente di creare un nuovo progetto. Se clicchiamo direttamente sul bottone si aprirà una finestra di dialogo in cui selezionare la tipologia di progetto da creare. Nel nostro caso andremo a ricercare “Maven” nella casella di ricerca e selezioneremo la tipologia corrispondente.

Selezione progetto da creare

In alternativa possiamo cliccare sulla freccetta a destra del bottone New e, se siamo fortunati, trovare immediatamente la tipologia di progetto che ci interessa.

Menù selezione nuovo progetto

Una volta selezionata la creazione di un nuovo progetto Maven, un wizard ci guiderà attraverso la configurazione iniziale del progetto.

Nel primo step possiamo selezionare la posizione in cui verrà creato il progetto. L’opzione Use default Workspace location è quella comunemente utilizzata, ma potete scegliere una differente directory a vostro piacimento semplicemente togliendo il check corrispondente.

Selezionando l’opzione Create a simple project (cosa che vi consiglio di fare), potete invece saltare lo step di selezione dell’archetipo, passando direttamente alla configurazione del Project Object Model. Potete certamente avventurarvi nella selezione dell’archetipo più adatto alla vostra tipologia di progetto (web, console, plugin, ecc.), ma vi assicuro che la struttura di base generata di default risulta molto versatile e utile per qualunque tipo di applicazione abbiate intenzione di sviluppare.

Nell’ultimo passo di configurazione andremo infine ad impostare i parametri richiesti dal POM.

Configurazione POM

Se state creando un nuovo progetto “autonomo” che non dipende da altri progetti Maven, potete tranquillamente ignorare la sezione Parent Project e le impostazioni avanzate. Potete invece cliccare su Finish e cominciare a lavorare.

La struttura generata per il progetto sarà la seguente:

Struttura progetto

Aggiornare la versione della JRE

Piccola ma utile nota a margine: probabilmente vi siete accorti che la versione della JRE impostata di default da Maven, è piuttosto attempata (nella fattispecie, J2SE 1.5).

Per indicare esplicitamente la versione della JVM che volete utilizzare nel vostro progetto, potete aggiungere nel file pom.xml queste proprietà:

<project>
  ...
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  ...
</project>

Nell’esempio stiamo impostando come ambiente di lavoro Java 8 (ovviamente la versione corrispondente del JDK deve essere installata sulla macchina di sviluppo).

Se la variazione non è subito visibile nel pannello Project Explorer di Eclipse, basterà ricaricare il POM. Per fare ciò, fate click col tasto destro del mouse sulla cartella principale del progetto. Nel menù che comparirà fate click su Maven → Update Project…

Aggiornamento POM

Nella finestra di dialogo che si aprirà lasciate tutte le opzioni invariate e limitatevi a fare click su OK. A questo punto Eclipse caricherà le nuove impostazioni dal pom.xml e visualizzerà correttamente la versione della JRE.

Importare un progetto esistente

Importare in Eclipse un progetto Maven esistente è un operazione davvero molto semplice.

Innanzitutto ci conviene spostare la cartella contenente il progetto nel nostro Workspace, dopodiché, nella finestra principale di Eclipse facciamo click su File → Import…

Si aprirà una finestra nella quale potremo andare a ricercare la tipologia di progetto da importare. Anche in questo caso inseriamo “Maven” nella casella di ricerca e selezioniamo la voce Existing Maven Projects.

Maven Project Import

Facciamo click su Next e, nello step successivo, andiamo a selezionare la cartella del progetto da importare tramite la funzione Browse…

Maven Project Browse...

Come vedete, Eclipse individua immediatamente i file pom.xml presenti nella directory selezionata e ci permette di selezionare quelli da importare.

Anche in questo caso, se non sono richiesti riferimenti esterni al progetto, ignoriamo le altre opzioni e facciamo click su Finish.

Eclipse avvierà in background la procedura d’importazione del progetto, che prevede anche l’individuazione e il download delle eventuali dipendenze definite nel file pom.xml.

Gestione delle dipendenze

Il plugin m2e consente di gestire i parametri nel file pom.xml tramite delle comode tab. Possiamo modificare le coordinate del progetto, le sue dipendenze e, ovviamente, visualizzare o modificare direttamente il codice XML del file.

In particolare la scheda Dependencies, ci consente di aggiungere o rimuovere nuove dipendenze. Cliccando sul bottone Add, apriremo una finestra tramite la quale possiamo andare a ricercare nel central repository i pacchetti di cui abbiamo bisogno.

Maven Dependencies

Nota: la funzionalità di ricerca richiede il download, ad ogni avvio di Eclipse, degli indici dei pacchetti disponibili nel central repository. Questa procedura oltre a rallentare il nostro IDE potrebbe essere piuttosto onerosa in termini di spazio. Personalmente preferisco gestire le dipendenze del progetto alla vecchia maniera: lavorando direttamente sul codice XML e ricercando i pacchetti su MvnRepository

La ricerca dei pacchetti non è abilitata di default in Eclipse, per cui se vogliamo utilizzarla dobbiamo prima di tutto accertarci che sia attiva.

Andiamo nel menù Window → Preferences e selezioniamo la sezione Maven.

Maven Settings

Assicuratevi che l’opzione Download repository index updates on startup sia spuntata. In questo modo al prossimo riavvio di Eclipse, verrà effettuato il download dell’indice dei pacchetti presenti nel central repository.

Il repository locale

Come saprete già, Maven utilizza un repository locale per risolvere le dipendenze definite nei progetti. Questo repository locale viene aggiornato e popolato ogni volta che una nuova dipendenza, non presente localmente, viene trovata nel pom.xml di un progetto.

Per conoscere ed eventualmente cambiare la posizione del vostro repository locale, dalla barra dei menù di Eclipse fate click su Window → Preferences. Quindi, nella sezione Maven, selezionate la voce User Settings. Nel campo Local Repository potete impostare la directory per il vostro repository locale.

Local Repository Settings

Eseguire la build del progetto

L’integrazione di Maven in Eclipse ci consente di eseguire alcune dei comandi principali direttamente all’interno del nostro IDE.

Facciamo click con il tasto destro del mouse sul file pom.xml e spostiamoci sulla voce Run As.

Run As... Maven

Come vedete, alcune delle operazioni più comuni sono subito disponibili nel menù.

Per configurare un nuovo build lifecycle ci basterà fare click su Maven Build…

Configurazione Maven Build

La finestra di dialogo ci permetterà di specificare i Goal da completare (o le corrispondenti fasi di “costruzione” da eseguire) e di lanciare il processo di build facendo click su Run.

In conclusione

Abbiamo dato uno sguardo alle funzionalità essenziali del plugin m2e, che ci consente di sfruttare le potenzialità di Apache Maven all’interno di Eclipse.

Se questo articolo vi è stato utile, aiutatemi a condividerlo usando i pulsanti in fondo alla pagina. Grazie mille! ;-)

A presto,

David