web-dev-qa-db-fra.com

Comment lire un fichier de propriétés externe dans Maven

Est-ce que quelqu'un sait comment lire un fichier x.properties dans Maven? Je sais qu'il existe des moyens d'utiliser le filtrage des ressources pour lire un fichier de propriétés et définir des valeurs à partir de celui-ci, mais je veux un moyen dans mon pom.xml comme:

<properties file="x.properties"> 

</properties>

Il y a eu des discussions à ce sujet: Maven External Properties

120
Dougnukem
91
Mike Pone

À l'aide du plug-in de propriétés Maven suggéré, j'ai pu lire un fichier buildNumber.properties que j'utilise pour la version de mes versions.

  <build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-1</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>${basedir}/../project-parent/buildNumber.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>
50
Dougnukem

Cette réponse à une question similaire explique comment étendre le plug-in de propriétés afin qu'il puisse utiliser un descripteur distant pour le fichier de propriétés. Le descripteur est fondamentalement un artefact jar contenant un fichier de propriétés (le fichier de propriétés est inclus dans src/main/resources).

Le descripteur est ajouté en tant que dépendance au plug-in de propriétés étendues, de sorte qu'il se trouve sur le chemin d'accès aux classes du plug-in. Le plugin recherchera le fichier de propriétés dans le chemin de classe, lira le contenu du fichier dans une instance de Propriétés et appliquera ces propriétés à la configuration du projet afin qu'elles puissent être utilisées ailleurs.

4
Rich Seller