2012-04-11 14 views
5

Sto cercando di aggiungere valori personalizzati nei pom.properties file Maven genera nella posizione META-INF/maven/${groupId}/${artifactId}valori personalizzati in pom.properties Maven il file

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
      <archive> 
       <manifestEntries> 
        <build>${BUILD_TAG}</build> 
       </manifestEntries> 
       <addMavenDescriptor>true</addMavenDescriptor> 
       <pomPropertiesFile>${project.build.directory}\interface.properties</pomPropertiesFile> 
      </archive> 
    </configuration> 
</plugin> 

Il contenuto dei file interface.properties è

# Build Properties 
buildId=746 

Utilizzando la documentation ho indicato l'elemento pomPropertiesFile a un proprietà esterne, ma il file generato pom.properties ha ancora il contenuto predefinito dopo l'esecuzione mvn install

Qual è l'utilizzo corretto dell'elemento pomPropertiesFile?

EDIT

credo che il problema sta nel org.apache.maven.archiver.PomPropertiesUtil. Se si osserva il metodo sameContents nello source, esso restituisce true se le proprietà nel file esterno sono uguali a quelle predefinite e false se diverse. Se il risultato di sameContents è falso, i contenuti del file esterno vengono ignorati.

Certo, basta, questo è già stato logged come un bug

+0

Che aspetto ha "interfaccia.proprietà"? –

+0

È un file di proprietà standard. – Pram

+0

Non utilizzare "\" in Maven pom's. usa invece "/". – khmarbaise

risposta

0

Credo che è necessario inserire un file sotto src/main/resources/META-INF/$ {groupId}/$ {artifactId}/interfaccia. proprietà e lascia che Maven faccia il lavoro di filtraggio (configura il filtro). Il file verrà automaticamente copiato su target/META-INF/maven/$ {groupId}/$ {artifactId}/posizione.

+1

Questo file viene generato dinamicamente durante il processo di generazione, quindi non penso che posizionarlo nell'albero dei sorgenti sia una buona pratica. – Pram

0

Vedi https://issues.apache.org/jira/browse/MNG-4998

Maven 3 risolverà segnaposto proprietà avidamente durante la lettura pom.xml per tutti i valori proprietà che sono disponibili in questo momento. La modifica di queste proprietà in un secondo momento non influirà sui valori già risolti in pom.xml.

Tuttavia, se il valore della proprietà non è disponibile (non esiste un valore predefinito), il segnaposto non verrà sostituito dal valore e potrà essere elaborato in seguito come segnaposto. Ad esempio, se un plug-in genererà alcune proprietà durante la compilazione o se il segnaposto viene letto ed elaborato da un plug-in durante alcuni passaggi di creazione.

Problemi correlati