Cuando recibo un informe de error o un mensaje de "no funciona", una de mis preguntas iniciales es siempre ¿qué versión? Con una compilación diferente en muchas etapas de prueba, planificación e implementación, esta suele ser una pregunta no trivial.¿Cuál es la mejor manera de almacenar información de la versión de Subversion en EAR?
I el caso de lanzar archivos Java JAR (ear, jar, rar, war) que me gustaría poder buscar en/en el JAR y cambiar a la misma rama, versión o etiqueta que fue la fuente del JAR lanzado
¿Cómo puedo ajustar mejor el proceso de creación de ant para que la información de versión en el checkout svn permanezca en la compilación creada?
yo estaba pensando a lo largo de las líneas de:
- Adición de un archivo versión, pero con qué contenido?
- almacenando información en el archivo META-INF, pero ¿bajo qué propiedad con qué contenido?
- fuentes de copia en el archivo resultado
- añaden propiedades svn: a todas las fuentes con las palabras clave en los lugares que el compilador hojas de ellos es
Terminé usando el enfoque svnversion (el anwser aceptado), porque escanea todo el subárbol en oposición a la información svn que solo mira el archivo/directorio actual. Para esto, definí la tarea SVN en el archivo ant para que sea más portátil.
<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>
No todas las construcciones dan como resultado servicios web. El archivo ear antes de la implementación debe permanecer con el mismo nombre debido a la actualización en el servidor de aplicaciones. Hacer que el archivo sea ejecutable sigue siendo una opción, pero hasta entonces solo incluí un archivo de información de versión.
<target name="version">
<svn><wcVersion path="${dir.source}"/></svn>
<echo file="${dir.build}/VERSION">${revision.range}</echo>
</target>
Refs:
svnrevision: http://svnbook.red-bean.com/en/1.1/re57.html
SVN SVN información de tareas http://svnbook.red-bean.com/en/1.1/re13.html
Subclipse: http://subclipse.tigris.org/svnant/svn.html
SVN Client: http://svnkit.com/
I Svn ¿Es más portátil que ejecutar "svnversion" como en la respuesta aceptada? –