Mostrar la versión SVN en una aplicación Web JAVA - Developando.com

Mostrar la versión SVN en una aplicación Web JAVA

En este tutorial explicaremos como incluir un número de versión generado a través de MAVEN dentro de nuestra aplicación Web. En nuestro caso, es una aplicación JSF, y mostraremos el número de versión en las páginas xhtml. El número generado será el de la última versión SVN.

Nosotros vamos a trabajar con las siguientes versiones:

  1. Eclipse KEPLER 
  2. Subeclipse 
  3. Apache Subversion client 1.8.3
  4. Maven 3
  5. Windows XP

Si deseas conocer cómo instalar Eclipse KEPLER con Maven y Svn (Subeclipse) consulta esta entrada

Para ello hay que seguir los siguientes pasos:

instalar cliente svn

  1. Instalar una versión del cliente SVN acorde a la versión SVN del eclipse. En nuestro caso tenemos instalado en el eclipse lo siguiente:

    eclipse kepler versiones
    eclipse kepler versiones
  2. Instalamos la versión Apache Subversion Client 1.8.3 en el sistema operativo, para ello os descargáis este zip y lo descomprimís en una carpeta de vuestro sistema. En nuestro caso en: C:/opt/svn
  3. Metemos el directorio bin de la instalación en el CLASSPATH y en el Path
  4. Para ello vamos a Mi Pc, hacemos clic con el botón derecho, Propiedades, y en la pestalla de Opciones avanzadas pulsamos en Variables de entorno

    propiedades del sistema
    propiedades del sistema
  5. Añadimos el directorio /bin de la instalación del cliente SVN en la variables Path.
path svn client
path svn client

Comprobamos que está instalado bien. Si no lo coge (la línea de comandos devuelve el error: svn no se reconoce como comando externo o interno) reinicia el pc o comprueba que hayas metido bien el directorio /bin en el Path

comprobar version svn client
comprobar version svn client

Ya tenemos nuestro cliente svn instalado. 

generación del número de versión de la aplicación

Para generar el número de versión configuraremos el siguiente plugin maven en nuestro pom.xml.  

configuración de la url del svn

Configuramos nuestra dirección del SVN. Para ello dentro de la sección insertamos el siguiente código

 XML | 
 
 copy code |
?

01
<?xml version="1.0" encoding="UTF-8"?>
02
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
04
 
05
 ... 
06
 
07
 <scm>
08
 <connection>scm:svn:http://IP:PUERTO/SVN/PROYECTO</connection>
09
 <url>http://IP:PUERTO/SVN/PROYECTO</url>
10
 </scm>
11
 </project>
12
 ...
13
<!--DVFMTSC-->

instalación plugin buildnumber-maven-plugin

Introducimos este código dentro de la sección

 XML | 
 
 copy code |
?

01
<?xml version="1.0" encoding="UTF-8"?>
02
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
04
 
05
 ... 
06
 
07
 <build>
08
  ...
09
 
10
 <finalName>miproyecto-${buildNumber}</finalName>
11
 
12
 <plugins>
13
 <plugin>
14
 <groupId>org.codehaus.mojo</groupId>
15
 <artifactId>buildnumber-maven-plugin</artifactId>
16
 <version>1.2</version>
17
 <executions>
18
 <execution>
19
 <phase>validate</phase>
20
 <goals>
21
 <goal>create</goal>
22
 </goals>
23
 </execution>
24
 </executions>
25
 <configuration>
26
 <docheck>true</docheck>
27
 <doupdate>true</doupdate>
28
 <shortrevisionlength>5</shortrevisionlength>
29
 </configuration>
30
 </plugin>
31
  ...
32
 
33
 </plugins>
34
 </build>
35
 ...
36
</project> 

En finalName, metemos el nombre de generación de nuestro war. En nuestro caso, le añadimos el número de versión

Para más info sobre este plugin visite el siguiente enlace

 Con esto, al realizar un Maven install se genera el número de versión asociado a la versión SVN y se almacena en la variable ${buildNumber}. El war generado tendrá el nombre miproyecto-XXXX donde XXXX es el número de versión

mostrar el número de versión en nuestro proyecto jsf

Ya generamos el número de versión, pero lo que nos interesa es mostrarlo en nuestra aplicación web. Para ello, generaremos un fichero .properties con el número de versión y lo mostraremos en nuestras páginas XHTML.

  1. Creamos un fichero config_es.properties en la carpeta src/main/resources/config y creamos una variable que sea nuestro número de versión dentro del fichero 

 Text | 
 
 copy code |
?

1
app_version = ${buildNumber}

  1. Configuramos el nuevo fichero properties dentro de la aplicación. Para ello añadimos el siguiente código dentro de nuestro fichero faces-config.xml

 XML | 
 
 copy code |
?

01
<?xml version="1.0"?> 
02
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" 
03
 xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
04
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 
05
 
06
   ...
07
 
08
 <application> 
09
 <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver> 
10
 <message-bundle>config.config</message-bundle> 
11
 <locale-config> 
12
 <default-locale>es</default-locale> 
13
 </locale-config> 
14
 </application> 
15
 
16
</faces-config> 

Para más info sobre i28n en una aplicación JSF-Spring Web, visita este enlace

Este es un ejemplo de página XTHML donde insertaremos el número de versión:

 html5 | 
 
 copy code |
?

01
 
02
03
    xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"> 
04
05
 
06
 
07
 .:: MI PROYECTO::. 
08
 
09
 
10
 

#{config.app_version}

11
 
12
 

sustitución de la variable app_version por el número de versión

En este punto, donde mostramos #{config.app_version} estaríamos imprimiendo la cadena “${buildNumber}. Necesitamos decirle a Maven, que sustituya esta variable por el valor de nuestro número de versión antes de hacer el despliegue. Para ello, usamos la opción “filtering = true” donde le decimos, que en determinados ficheros, tiene que sustituir las variables MAVEN por su valor. En nuestro caso, el fichero config_es.properties que está dentro de la carpeta src/main/resources/config. El fichero pom resultado quedaría de la siguiente manera:

 XML | 
 
 copy code |
?

01
<?xml version="1.0" encoding="UTF-8"?>
02
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
04
 
05
 <name>miproyecto</name>
06
 <scm>
07
 <connection>scm:svn:http://IP:PUERTO/SVN/PROYECTO</connection>
08
 <url>http://IP:PUERTO/SVN/PROYECTO</url>
09
 </scm>
10
 
11
 <build>
12
 <resources>
13
 <resource>
14
 <filtering>true</filtering>
15
 <directory>src/main/resources</directory>
16
 <includes>
17
 <include>config/*.properties</include>
18
 </includes>
19
 
20
 </resource>
21
 
22
 </resources>
23
 
24
 <finalName>MIPROYECTO-${buildNumber}</finalName>
25
 <plugins>
26
 <plugin>
27
 <groupId>org.codehaus.mojo</groupId>
28
 <artifactId>buildnumber-maven-plugin</artifactId>
29
 <version>1.2</version>
30
 <executions>
31
 <execution>
32
 <phase>validate</phase>
33
 <goals>
34
 <goal>create</goal>
35
 </goals>
36
 </execution>
37
 </executions>
38
 <configuration>
39
 <docheck>true</docheck>
40
 <doupdate>true</doupdate>
41
 <shortrevisionlength>5</shortrevisionlength>
42
 </configuration>
43
 </plugin>
44
 ...
45
 
46
 </plugins>
47
 </build>
48
 
49
 ...
50
 
51
</project>
52

Share Button
Fátima de la Osa Barriga

Sobre 

Fátima de la Osa Barriga es uno de los creadores y desarrolladores que componen Developando.

Si quieres conocer más sobre visita su perfil.

    Find more about me on:
  • facebook
  • googleplus
  • linkedin
  • twitter

Deja tu comentario

Loading Disqus Comments ...
Loading Facebook Comments ...