Sfortunatamente, jar manifest non ha standard per la numerazione delle versioni.
Ma, in realtà, esiste un altro metodo standard per aggiornare automaticamente il numero di revisione. È possibile utilizzare svn:keywords per ottenere il numero di revisione corrente nei file dopo ogni commit. C'è la proprietà per la sostituzione di revisione e $HeadURL$
per la sostituzione dell'URL di repository. Hai solo bisogno di mettere seguente stringa nel file e posizionare il file sotto controllo di versione:
$Revision$ $HeadURL$
Se si crea manifesta al volo con Maven, mi sento di raccomandare di mettere seguente contenuto in version.properties
del file:
revision=$Revision$
repourl=$HeadURL$
quindi includere in in pom.xml
con la dichiarazione (Maven dovrebbe avere delle proprietà dei plugin abilitati):
<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>version.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
E allora si sarà in grado di mettere il numero di revisione e dei pronti contro termine URL del manifesto:
<manifest>
<attribute name="Revision" value="${revision}" />
<attribute name="Repository URL" value="${repourl}" />
</manifest>
Si prega di notare, inoltre, che è necessario explicitly enable svn:keywords
utilizzando le proprietà sovversione al fine di ottenere $Revision$
e $HeadURL$
sostituito nella vostra file con valori attuali. Se deciderai di utilizzare version.properties
, dovrai eseguire il seguente comando:
svn propset svn:keywords Revision version.properties
svn propset svn:keywords HeadURL version.properties
Nessun standard di cui sono a conoscenza. Ogni azienda/sviluppatore sembra avere un'opinione su come gestire i numeri di revisione, non importa come registrare e descrivere quella revisione :-) –
Si potrebbe voler considerare l'uso di un file diverso da (o almeno in aggiunta) il manifest se hai mai voluto leggere il numero di revisione programmaticamente. La lettura di MANIFEST.MF dall'interno della JVM è piuttosto un problema e può essere incoerente da un ambiente all'altro se la gerarchia del classloader cambia del tutto. –
vedere anche: http://stackoverflow.com/questions/7670602/conventions-for-additional-content-of-the-manifest-mf-file –