Maven: gestione di progetti software basati su Java e build automation

Maven: gestione di progetti software basati su Java e build automation

Maven è un sistema completo per la gestione dei progetti, che ingloba automatismi per la documentazione, distribuzione e collaborazione. Per funzionalità è similare ad Apache Ant ma basato su concetti differenti. Maven è ospitato da Apache Software Foundation, dove faceva parte dell’ex progetto Jakarta. E’ un tentativo di riunire in un unico prodotto una serie di pattern ben consolidati e collaudati da applicare all’infrastruttura di build di progetti Java.

Maven: gestione di progetti software basati su Java e build automation

Il concetto principale è la dichiarazione di alcune convenzioni sulla configurazione del progetto, definendo ad esempio una organizzazione standard della directory dei progetti, cioè la collocazione del codice sorgente, dei file di configurazione, della documentazione e degli artefatti generati. Questo definisce l’Archetipo del progetto. Con Archetipo si intende il modello dal quale tutti gli altri oggetti dello stesso tipo sono creati. L’Archetipo definisce pertanto lo standard di un progetto. Coerentemente con l’impostazione di Maven, applicare tale standard non è obbligatorio, sebbene sia fortemente consigliato: Maven fornisce una serie di strumenti che permettono di utilizzare strutture diverse e, in casi molto particolari, è anche possibile non conformarsi agli standard. Ma occorre comunque ricordare che deviare dalle impostazioni standard tende a invalidare, o comunque a ridurre, la portata di tutta una serie di vantaggi, quali quelli tipici derivanti dal fatto che si tratta di uno “standard”.

Per sua natura, Maven è un framework progetto-centrico ed il POM (Project Object Model) è la descrizione del singolo progetto. Qualsiasi aspetto viene specificamente dichiarato e configurato nel file pom.xml ubicato nella radice del progetto. Mediante questo file di configurazione Maven gestisce ogni singolo aspetto e stadio del ciclo di vita del progetto.

Altra interessantissima funzionalità di Maven è la gestione e l’organizzazione delle dipendenze. Viene in questo contesto definito il concetto di artefatto, come una specifica parte di software (che può essere un file jar, war, sar, ecc.). Una dipendenza non è altro che un riferimento ad un artefatto specifico disponibile in un preciso repository remoto. Maven cerca di interpretare le coordinate delle dipendenze  indicate nel file POM e cerca di soddisfare tali riferimenti cercando gli artefatti richiesti nei repository remoti disponibili nel contesto del progetto, togliendo allo sviluppatore il compito di importare direttamente ogni singola dipendenza ed includerla successivamente nel pacchetto di rilascio. Se la dipendenza richiesta viene correttamente localizzata, Maven provvede al suo downlaod e all’installazione presso il repository locale.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *