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?
Ah brillante, esattamente quello che stavo cercando. – RCross