<project>
...
<!-- =============================================================== -->
<!-- Properties -->
<!-- =============================================================== -->
<properties>
<maPropriete>la valeur de la propriété</maPropriete>
<uneAutrePropriete>la valeur de la propriété</uneAutrePropriete>
</properties>
...
</project>
L'utilisation des propriétés n'est pas limitée au fichier pom.xml. En effet, il est possible de demander à Maven de remplacer les propriétés aussi dans les fichiers dits resource. Cela s'appelle filter des fichiers ressource dans le jargon de Maven.
<project>
...
<properties>
<apache.struts.version>2.5.10.1</apache.struts.version>
</properties>
...
<dependencies>
<!-- ===== Apache Struts ===== -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${apache.struts.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${apache.struts.version}</version>
</dependency>
</dependencies>
...
</project>
En plus des propriétés que vous pouvez définir vous-même grâce à la balise , il existe également des propriétés pré-définies :
Vous pouvez aussi accéder à des propriétés particulières grâce aux préfixes suivants :
<project><organization><name>1.0</name></organization></project>
est accessible via ${project.organization.name}.La plupart des conventions établies par Maven (chemin des sources, chemin de génération...) sont mises en œuvre grâce au Super POM. En effet, de base, le POM d'un projet hérite du Super POM qui définit les valeurs par défaut que va utiliser Maven.
Ne vous étonnez donc pas si ${project.build.directory} vous renvoie une valeur alors que vous ne l'avez pas définie dans votre fichier pom.xml. Elle provient du Super POM !
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1
mvn package
Le projet sera compilé ici: target/appnam-1.0-SNAPSHOT.jar
java -cp target/mon-appli-1.0-SNAPSHOT.jar org.exemple.demo.App
pom.xml : POM (Project Object Model)
https://maven.apache.org/pom.html
Toujours par convention, Maven donne un statut particulier aux versions ayant pour suffixe -SNAPSHOT. En effet, cela veut dire que le code de cette version de l'application n'est pas figé. C'est une version en cours de développement. Par opposition, si la version ne se termine pas par le suffixe -SNAPSHOT, cela signifie qu'il s'agit d'une release de l'application et que son code est figé. Les versions snapshot font l'objet de traitements particuliers, notamment dans la gestion des dépendances.