I'm trying to read my META-INF/MANIFEST.MF file from my Spring Boot web app (contained in a jar file).
I'm trying the following code:
InputStream is = getClass().getResourceAsStream("/META-INF/MANIFEST.MF");
Properties prop = new Properties();
prop.load( is );
But apparently there is something behind the scenes in Spring Boot that a different manifest.mf is loaded (and not my own located in META-INF folder).
Does anyone know how I can read my manifest app in my Spring Boot app?
UPDATE: After some research I noticed that using the usual way to read a manifest.mf file, in a Spring Boot application this is the Jar that is being accessed
org.springframework.boot.loader.jar.JarFile
解决方案
I use java.lang.Package to read the Implementation-Version attribute in spring boot from the manifest.
String version = Application.class.getPackage().getImplementationVersion();
The Implementation-Version attribute should be configured in build.gradle
jar {
baseName = "my-app"
version = "0.0.1"
manifest {
attributes("Implementation-Version": version)
}
}