Lors de la réception d'un rapport de bug ou d'un message it-doesnt-work, une de mes questions initiales est toujours quelle version? Avec une construction différente étant à plusieurs étapes de test, la planification et le déploiement de cette question est souvent une question non triviale. Dans le cas de la publication de fichiers Java JAR (ear, jar, rar, war), je voudrais pouvoir regarder dans/dans le JAR et passer à la même branche, version ou tag qui était la source de JAR publié.Comment mieux stocker les informations de version Subversion dans les fichiers EAR?
Comment puis-je ajuster au mieux le processus de construction des fourmis de sorte que les informations de version dans la vérification svn restent dans la construction créée?
Je pensais le long des lignes de:
- l'ajout d'un fichier VERSION, mais avec quel contenu?
- stocker des informations dans le fichier META-INF, mais sous quelle propriété avec quel contenu?
- sources de copie dans l'archive des résultats
- ajouté svn: propriétés à toutes les sources avec des mots clés dans des endroits le compilateur les feuilles être
Je fini par utiliser l'approche svnversion (la anwser acceptée), car il analyse l'ensemble du sous-arbre par opposition à svn info qui ne regarde que le fichier/répertoire en cours. Pour cela j'ai défini la tâche SVN dans le fichier ant pour le rendre plus portable.
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
<classpath>
<pathelement location="${dir.lib}/ant/svnant.jar"/>
<pathelement location="${dir.lib}/ant/svnClientAdapter.jar"/>
<pathelement location="${dir.lib}/ant/svnkit.jar"/>
<pathelement location="${dir.lib}/ant/svnjavahl.jar"/>
</classpath>
</taskdef>
Toutes les générations ne donnent pas lieu à des services Web. Le fichier ear avant le déploiement doit conserver le même nom en raison de la mise à jour dans le serveur d'applications. Rendre le fichier exécutable est toujours une option, mais jusque-là, je viens d'inclure un fichier d'informations de version.
<target name="version">
<svn><wcVersion path="${dir.source}"/></svn>
<echo file="${dir.build}/VERSION">${revision.range}</echo>
</target>
: Réfs
svnrevision: http://svnbook.red-bean.com/en/1.1/re57.html
svn info http://svnbook.red-bean.com/en/1.1/re13.html
subclipse tâche svn: http://subclipse.tigris.org/svnant/svn.html
svn client: http://svnkit.com/
Je SvnTask plus portable que d'exécuter "svnversion" comme dans la réponse acceptée? –