Accéder aux propriétés Maven en Java

1. Vue d'ensemble

Dans ce court tutoriel, nous verrons comment utiliser les variables définies dans le pom.xml de Maven à partir d'une application Java.

2. Configuration du plugin

Tout au long de cet exemple, nous utiliserons le plugin Maven Properties.

Ce plugin se liera à la phase de génération de ressources et créera un fichier contenant les variables définies dans notre pom.xml lors de la compilation. Nous pouvons ensuite lire ce fichier au moment de l'exécution pour obtenir les valeurs.

Commençons par inclure le plugin dans notre projet:

 org.codehaus.mojo properties-maven-plugin 1.0.0   generate-resources  write-project-properties   ${project.build.outputDirectory}/properties-from-pom.properties     

Ensuite, nous continuerons en fournissant une valeur à notre variable. De plus, puisque nous les définissons dans le pom.xml , nous pouvons également utiliser des espaces réservés Maven:

 ${project.name} property-from-pom 

3. Propriétés de lecture

Il est maintenant temps d'accéder à notre propriété depuis la configuration. Créons une classe utilitaire simple pour lire les propriétés d'un fichier sur le chemin de classe:

public class PropertiesReader { private Properties properties; public PropertiesReader(String propertyFileName) throws IOException { InputStream is = getClass().getClassLoader() .getResourceAsStream(propertyFileName); this.properties = new Properties(); this.properties.load(is); } public String getProperty(String propertyName) { return this.properties.getProperty(propertyName); } }

Ensuite, nous écrivons simplement un petit cas de test qui lit nos valeurs:

PropertiesReader reader = new PropertiesReader("properties-from-pom.properties"); String property = reader.getProperty("my.awesome.property"); Assert.assertEquals("property-from-pom", property);

4. Conclusion

Dans cet article, nous avons parcouru le processus de lecture des valeurs définies dans le pom.xml à l'aide du plug- in de propriétés Maven.

Comme toujours, tout le code est disponible sur sur GitHub.