java - que - Obtención de la versión del proyecto maven y la ID de artefacto de pom mientras se ejecuta en Eclipse
maven tutorial español (1)
Estaba buscando la forma de obtener el nombre de la aplicación (identificación del artefacto) y la versión de maven pom o manifiesto cuando me encontré con esta pregunta.
Lo anterior me funciona cuando empaqueto el proyecto, pero parece que no consigo que nada funcione cuando intento ejecutar el programa utilizando eclipse. Intenté usar el método .properties al compilar, ya que asumí que no depende del paquete, pero aún no obtengo un resultado. Si alguien tiene una idea o solución para este problema, sería muy apreciado.
Mi último intento es a continuación. Esto usa el manifiesto cuando está empaquetado (lo que funciona) y trata de obtener el archivo .properties cuando se ejecuta en eclipse.
String appVersion = getClass().getPackage().getImplementationVersion();
if(appVersion == null || "".equals(appVersion)) {
appVersion = Glob.getString(appVersion);
if(appVersion == null || "".equals(appVersion)) {
System.exit(0);
}
}
Crear un archivo de propiedades
src/main/resources/project.properties
con el contenido de abajo
version=${project.version}
artifactId=${project.artifactId}
Ahora activa el filtrado de recursos de Maven.
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
para que este archivo sea procesado en
target/classes/project.properties
con algún contenido similar a este
version=1.5
artifactId=my-artifact
Ahora puede leer este archivo de propiedades para obtener lo que desea y esto debería funcionar siempre.
final Properties properties = new Properties();
properties.load(this.getClassLoader().getResourceAsStream("project.properties"));
System.out.println(properties.getProperty("version"));
System.out.println(properties.getProperty("artifactId"));