读取Spring Boot应用程序的清单文件

时间:2019-01-06 23:41:18

标签: java spring-boot manifest.mf

我正在研究多模块Java Spring引导应用程序。结构如下所示。

module 1 (packaging: pom)
   submodule 1.1 (packaging: jar)
   submodule 1.2 (packaging: jar)

module 2 (packaging: pom)
   submodule 2.1 (packaging: jar)
   submodule 2.2 (packaging: jar)

webapplication (packaging: war)
   use submodule jars as dependencies

webapplication模块包含所有REST API。一种REST API应该读取MANIFEST.MF文件中的war文件,并提供一些与已部署的应用程序有关的信息。

正在使用以下代码来读取MANIFEST.MF文件。 (在这里手工制作)

 InputStream input = getClass().getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
 Manifest manifest = new Manifest(input); //java.util.jar.Manifest
 Attributes attrs = manifest.getMainAttributes();

问题

使用spring-boot:run命令运行该应用程序时,我在attrs中可以找到的内容与战争中MANIFEST.MF文件中看到的内容完全不同。它必须正在从其他清单文件中读取。

问题

  1. 我是否以错误的方式加载MANIFEST文件?我必须使用servletContext()来加载文件吗?
  2. 上面的代码可能是从在classpath中找到的第一个jar文件读取的。仅找到已部署的war文件的清单文件的最佳方法是什么?我尚未尝试使用jcbi-manifests软件包。可以解决问题吗?

0 个答案:

没有答案