Oggi vediamo più in dettaglio il cuore di Maven, ovvero quel POM file che descrive il progetto nella sua completezza. POM è l'acronimo di "Project Object Model". Si tratta di una rappresentazione XML di un progetto Maven descritta in un file chiamato pom.xml.

Cominciamo ad analizzare la configurazione minima del pom file.

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>it.finazzo.progetti</groupId>

<artifactId>singolo</artifactId>

<version>1.0</version>

<packaging>war</packaging>

</project>

Come ogni buon file xml che si rispetti è presente uno schema xsd che stabilisce le regole del file. Lo schema è arrivato alla versione 4.0.0.

I campi groupId, artifactId e version identificano univocamente il progetto, agendo da sistema di coordinate.

Il campo groupId individua univocamente un'organizzazione o un progetto. Può assumere qualsiasi valore, ma è buona prassi valorizzarla usando la dot-notation. In tal modo rilasciando il gruppo su un repository, i punti vengono sostituiti con i separatori di directory OS specifici. Nell'esempio riportato il gruppo it.finazzo.progetti >è presente nella directory $M2_REPO/it/finazzo/progetti.

Il campo artifactId individua univocamente il progetto all'interno dell'organizzazione. Di norma coincide con il nome del progetto. Nell'esempio riportato il progetto è presente nella directory $M2_REPO/it/finazzo/progetti/singolo

Il campo version individua la versione del progetto. Nell'esempio riportato il progetto $M2_REPO/it/finazzo/progetti/singolo/1.0.

Il campo packaging individua il formato del package prodotto. Se non è definito il sistema assume jar.

Prossimo