133 votes

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

Quelqu'un sait-il 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 une discussion à ce sujet : Propriétés externes de Maven

0 votes

Si vous n'avez que quelques valeurs, et que différents utilisateurs auront besoin de valeurs différentes, pensez plutôt à en mettant la valeur dans votre settings.xml .

99voto

Mike Pone Points 4840

1 votes

Je pense que c'est ce que je cherche. Je n'ai pas trouvé la 1.0-SNAPSHOT dans les dépôts maven mais il y a une version : mvnrepository.com/artifact/org.codehaus.mojo/ <dépendance> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0-alpha-1</version> </dépendance>.

3 votes

0 votes

Version actuelle : <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0-alpha-2-SNAPSHOT</version> du snapshots.repository.codehaus.org

60voto

Dougnukem Points 5346

En utilisant le plugin de propriétés Maven suggéré, j'ai pu lire un fichier buildNumber.properties que j'utilise pour versionner mes constructions.

  <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>

9 votes

Pouvez-vous montrer l'intérieur du fichier buildNumber.properties ? merci !

0 votes

Merci pour cet exemple fonctionnel. Cependant, pourquoi ai-je obtenu une erreur de Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-p‌​roject-properties (execution: default, phase: initialize)

0 votes

Lorsque j'entre dans cette section <plugin> sous <plugins> après </build> et avant les plugins maven réguliers, j'obtiens cette erreur : Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-p‌​roject-properties (execution: default, phase: initialize)

6voto

Rich Seller Points 46052

Ce site réponse à une question similaire décrit comment étendre le plugin properties afin qu'il puisse utiliser un descripteur distant pour le fichier properties. Le descripteur est essentiellement 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 plugin de propriétés étendues afin qu'il soit dans le classpath du plugin. Le plugin recherchera le fichier de propriétés dans le classpath, lira le contenu du fichier dans une instance de Properties, et appliquera ces propriétés à la configuration du projet afin qu'elles puissent être utilisées ailleurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X