如何从 *.war/META-INF/MANIFEST.MF 文件中读取 manifest.mf?

Mik*_*lov 3 java spring web-applications maven

使用 maven 编译 *.war 文件,其中包含:

- META-INF
- - MANIFEST.MF
- WEB-INF
- - classes
- - lib
- - web.xml
Run Code Online (Sandbox Code Playgroud)

使用 java.util.jar.Manifest 我想读取清单文件以从那里获取应用程序版本,例如/sf/answers/1473238021/

Application.class.getResourceAsStream("/META-INF/manifest.mf")返回null

Application.class.getResource( "" ).getFile() 返回 %WAR%/WEB-INF/lib/javax.ws.rs-api-2.0.jar!/javax/ws/rs/core/

使用 Spring,我实现了 ApplicationContextAware 接口来获取 ApplicationContext 实例。

applicationContext.getClassLoader().getResourceAsStream( "" )返回%WAR%/WEB-INF/classes

但我不需要WEB-INF,我需要META-INF目录。如何获得?

Dir*_*ski 5

您正在混合案例。您META-INF包含 ,MANIFEST.MF但您正尝试在 上打开资源流manifest.mf

你将不得不改变

Application.class.getResourceAsStream("/META-INF/manifest.mf")
Run Code Online (Sandbox Code Playgroud)

Application.class.getResourceAsStream("/META-INF/MANIFEST.MF")
Run Code Online (Sandbox Code Playgroud)