2010-10-12 8 views
7

Je souhaite que mon application JAR/WAR connaisse le numéro de révision SVN de son code source. Je veux que ce numéro de révision soit rendu plus tard pour les utilisateurs finaux Web au bas d'une page Web, etc.Comment injecter le numéro de révision SVN dans JAR?

Y at-il un plugin Maven existant pour automatiser le processus? Je pense que le plugin doit recueillir les informations de svn et enregistrer dans un fichier, comme src/resources/revision.txt.

Répondre

4

Cette page fournit la réponse à un problème presque identique:

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

Dans votre cas, au lieu de construire une entrée manifeste, vous devez utiliser la variable buildNumber pour resource filtering

+0

Quel est le problème avec l'entrée de manifeste? Je suppose qu'il est accessible depuis Java alors. Droite? – yegor256

+0

@vincenzo bien sûr, il y avait une question sur un problème similaire hier (vous pouvez utiliser la réponse): http://stackoverflow.com/questions/3907737/how-to-read-manifest-mf-from-pojo-class- not-a-servlet-instantiated-by-spring –

+0

@vincenzo mais filtrer un jsp ou un simple fichier texte avec maven est beaucoup plus facile –

0

Vous pouvez utiliser svn keyword substitution

+1

Dans un tel cas, je vais ramasser la version SVN de ce fichier particulier, pas de toute la base de code. – yegor256

+0

La substitution de mots-clés n'est effectuée que sur les fichiers modifiés, c'est-à-dire sans changement, sans nouveau numéro de révision. Il faut lire la révision du projet en cours dans le répertoire '.svn'. MediaWiki a du code qui le fait, mais il est écrit en PHP. – Archimedix

3

utiliser les versions -maven-plugin- BuildNumber maven-plugin du projet Codehaus Mojo. Fournit beaucoup d'options pour le faire.

+0

Vraiment? Je ne peux pas en trouver. Nous parlons de la révision SVN, pas de la version POM. –

+0

J'ai édité mon anwser, avait le mauvais plugin – Salandur

+0

@ Salutur Merci pour la mise à jour, mais c'est exactement ce que 'seanizer' a expliqué ci-dessus. – yegor256

Questions connexes