2010-10-12 8 views
7

Voglio che la mia applicazione JAR/WAR sappia qual è il numero di revisione SVN del suo codice sorgente. Voglio che questo numero di revisione venga successivamente visualizzato per gli utenti finali Web nella parte inferiore di una pagina Web, ecc.Come iniettare il numero di revisione SVN in JAR?

Esiste un plug-in Maven esistente per automatizzare il processo? Penso che il plugin debba raccogliere le informazioni da svn e salvare in qualche file, come src/resources/revision.txt.

risposta

4

Questa pagina fornisce la risposta a un problema quasi identico:

Maven Cookbook: How To Add SVN Revision To A JAR Manifest?

Nel tuo caso, invece di costruire una voce manifesta, è necessario utilizzare la variabile numero build per resource filtering

+0

Cosa c'è di sbagliato nella voce manifest? Suppongo che sia accessibile da Java allora. Destra? – yegor256

+0

@vincenzo certo, c'era una domanda su un problema simile ieri (puoi usare la risposta): http://stackoverflow.com/questions/3907737/how-to-read-manifest-mf-from-pojo-class- non-a-servlet-istanziato-per-molla –

+0

@vincenzo ma il filtraggio di un jsp o di un semplice file di testo con Maven è molto più semplice –

0

È possibile utilizzare svn keyword substitution

+1

In tal caso, raccoglierò la versione SVN di questo particolare file, non dell'intero codice base. – yegor256

+0

La sostituzione della parola chiave viene eseguita solo sui file modificati, cioè senza modifiche, senza nuovo numero di revisione. Si deve leggere la revisione del progetto corrente dalla directory '.svn'. MediaWiki ha un codice che lo fa, comunque è scritto in PHP. – Archimedix

3

utilizzare i versioni-Maven-plug BuildNumber-maven-plugin dal progetto Codehaus Mojo. Fornisce molte opzioni per farlo.

+0

Davvero? Non riesco a trovarne. Stiamo parlando della revisione SVN, non della versione POM. –

+0

ho modificato il mio anwser, ho avuto il plugin sbagliato – Salandur

+0

@Salandur Grazie per l'aggiornamento, ma questo è esattamente ciò che 'seanizer' ha spiegato sopra. – yegor256