Come leggere un file di proprietà esterno in Maven


127

Qualcuno sa come leggere un file x.properties in Maven. So che ci sono modi per utilizzare il filtro delle risorse per leggere un file delle proprietà e impostarne i valori, ma voglio un modo nel mio pom.xml come:

<properties file="x.properties"> 

</properties>

Si è discusso di questo: Maven External Properties


Se hai solo pochi valori e utenti diversi avranno bisogno di valori diversi, considera invece di inserire il valore nel tuosettings.xml .
Raedwald,

Risposte:


95

1
Penso che sia quello che sto cercando di non riuscire a trovare 1.0-SNAPSHOT nei repository di Maven ma c'è una versione: mvnrepository.com/artifact/org.codehaus.mojo/… <dipendenza> <gruppoId> org.codehaus .mojo </groupId> <artifactId> properties-maven-plugin </artifactId> <version> 1.0-alpha-1 </version> </dependency>
Dougnukem,


Versione corrente: <groupId> org.codehaus.mojo </groupId> <artifactId> properties-maven-plugin </artifactId> <version> 1.0-alpha-2-SNAPSHOT </version> da snapshots.repository.codehaus.org
Huluvu424242,

2
Il link nella risposta è stato aggiornato al nuovo link di @JesseGlick
Jon Adams

1
Ho avuto problemi con questo plugin su Windows. Se anche qualcuno ha dei problemi, prova invece kuali .
fnst

56

Utilizzando il plug-in delle proprietà Maven suggerito sono stato in grado di leggere in un file buildNumber.properties che utilizzo per eseguire la versione dei miei build.

  <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
potresti mostrare l'interno del file buildNumber.properties? grazie!
victorio,

Grazie per un esempio funzionante. Tuttavia, perché ho ricevuto un errore diPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun

Quando accedo a questa sezione <plugin> in <plugins> dopo </build> e prima dei normali plugin di maven, visualizzo questo errore:Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
PraNuta,

@BorisBrodski potresti mostrare l'interno del file buildNumber.properties? Sembra che tu abbia eliminato alcuni dettagli.
Moustafa Mahmoud,

@MoustafaMahmoud perché io? Questa non è la mia risposta :) Ma posso ipotizzare che potrebbe apparire come "my.great.product.version = 1.0.0".
Boris Brodski,

5

Questa risposta a una domanda simile descrive come estendere il plug-in delle proprietà in modo che possa utilizzare un descrittore remoto per il file delle proprietà. Il descrittore è fondamentalmente un artefatto jar contenente un file delle proprietà (il file delle proprietà è incluso in src / main / resources).

Il descrittore viene aggiunto come dipendenza al plug-in delle proprietà estese, quindi si trova sul percorso di classe del plug-in. Il plugin cercherà nel percorso di classe il file delle proprietà, leggerà il contenuto del file in un'istanza di Proprietà e applicherà tali proprietà alla configurazione del progetto in modo che possano essere utilizzate altrove.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.