2011-03-10 37 views
6

Deseo agregar una numeración de versión a mi aplicación Java (en este caso, un portlet Vaadin) que presenta el número de versión en la vista de ayuda.Cargue el número de versión POM de Maven en el proyecto Java

El hecho es que ese número de versión es el definido en el archivo POM de mi Maven (por ejemplo, 1.1.5-SNAPSHOT) y ese es el que vamos a cambiar (en el lanzamiento, por ejemplo).

¿Alguna idea sobre cómo sacarla del POM y entrarla (por ejemplo, una Cadena) en Java? (Si es posible)

Gracias

Respuesta

8

utilice un archivo filtrados propiedades que contiene la línea

version=${project.version} 

y cargar este archivo de propiedades de la ruta de clases en el programa Java.

+0

Quién establece el archivo de propiedades y puedo obtener el valor de un project.version de un método Java sin usar un archivo de propiedades etc. ¿Puedes verificar mi pregunta? http://stackoverflow.com/questions/14760638/how-to-get-maven-project-version-from-java-class-as-like-at-pom – kamaci

4

Hay muchas soluciones a este problema

Pero definitivamente preferiría el primero, ya que acceder a MANIFEST.MF es bastante fácil en Java

+0

¿Cómo se puede acceder a la información en el manifiesto en Java? ¿solicitud? –

+1

@Deejay déjame stackoverflow por ti: http://stackoverflow.com/q/615493/15619 – Riduidel

+0

Hehehe, aplausos :) –

2

La versión en el POM está disponible como una propiedad "project.version". Expresado como $ {} project.version

lo que debería ser capaz de utilizarlo con recursos de filtrado:

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

El enfoque mejor sería probablemente para filtrar (y reemplazar) un archivo de propiedades o una descriptor de despliegue.

2

O podría leer maven pom.properties de classpath. Los pom.properties se encuentran en:
META-INF/maven/groupid/artifactId/pom.properties

+0

Esto causaría una dependencia en la construcción de Maven. Prefiero usar el archivo MANIFEST.MF que contiene la misma información definida de manera estándar. – jjmontes

Cuestiones relacionadas