2012-09-12 15 views
6

Sto eseguendo build maven da TeamCity e utilizzo di build.vcs.number per scrivere la revisione di Subversion nel mio manifest. In ogni Maven costruire con Subversion come il VCS, TeamCity aggiungeProprietà perse durante la versione di Maven: eseguire

-Dbuild.vcs.number=1234 

alla riga di comando Maven, dove 1234 è l'ultima revisione nel ramo in fase di costruzione.

Poi nel mio pom.xml, ho

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
     <archive> 
      <manifest> 
       <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
      </manifest> 
      <manifestEntries> 
       <build>${build.vcs.number}</build> 
      </manifestEntries> 
     </archive> 
    </configuration> 
</plugin> 

Tutto questo funziona bene fino a quando corro rilascio Maven: eseguire (anche da TeamCity), a quel punto $ {} build.vcs.number diventa nulla , anche se nel registro di build di TeamCity posso vedere che questa proprietà è stata passata alla riga di comando.

La documentazione di maven-release-plug implica che Maven esegue un processo con fork prima o poi durante l'obiettivo di esecuzione: è questo il motivo per cui ho il problema?

C'è un modo per garantire che questa particolare proprietà venga passata a quel processo biforcato?

risposta

4
-Darguments=-Dbuild.vcs.number=1234 

v'è un processo a forcella per il rilascio per assicurarsi che ha una linea pulita di comando riproducibile, quindi, è necessario specificare che cosa di passare attraverso.

Idealmente si configura il plug-in di rilascio sul Pom per passare la proprietà, ma in caso contrario utilizzare l'override (a meno che qualcuno non abbia disattivato l'override nel Pom ... Si è bloccato fino a quando non si riattiva.

Nota: prestare molta attenzione a citare se ci sono più proprietà o proprietà con spazi a loro

+0

Ah brillante, esattamente quello che stavo cercando. – RCross