如何从 Jboss EAP 6.4 中部署的所有战争的 manifest.mf 文件中获取实现版本详细信息
Posted
技术标签:
【中文标题】如何从 Jboss EAP 6.4 中部署的所有战争的 manifest.mf 文件中获取实现版本详细信息【英文标题】:How to get implementation version details from manifest.mf file from all the war deployed in Jboss EAP 6.4 【发布时间】:2018-12-13 01:04:13 【问题描述】:我们在 Jboss Eap 6.4 服务器中部署了许多 war 应用程序。War 文件是使用 Maven 构建的,并热部署在 Jboss EAP 服务器中。 war 文件的名称只包含工件 id,不包含应用程序的实现版本,由于产品中的一些其他问题,我们删除了 war 文件名称中的版本。版本相关的详细信息存在于 war 中manifest.mf 文件中的文件。
我们如何获取服务器中部署的war文件的版本。
能否请您告诉我获取实现版本详细信息的可能选项。
【问题讨论】:
【参考方案1】:您可以在战争中使用一段 java 代码为您执行此操作,该代码在first hit of the context-root
期间执行。
应该这样做:
public String getVersionNameFromManifest() throws IOException
InputStream manifestStream = getClass().getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
if (manifestStream != null)
Manifest manifest = new Manifest(manifestStream);
Attributes attributes = manifest.getMainAttributes();
return attributes.getValue("versionName");
return "Not Found";
这应该返回正在使用的 jar 的确切版本,如果出现任何问题,它将返回一个字符串“未找到”。
【讨论】:
嗨,sweta,感谢您的回复。我需要一个通用的解决方案,而不是在单个战争文件中添加一个类。以上是关于如何从 Jboss EAP 6.4 中部署的所有战争的 manifest.mf 文件中获取实现版本详细信息的主要内容,如果未能解决你的问题,请参考以下文章
Jboss (6.4 EAP) 到 WebSphere (7.x)
无法在 Jboss-eap-6.4 中部署 Spring Boot 应用程序
无法在 JBoss EAP 6.4 环境中使用 wildfly-maven-plugin 2.0.1 进行部署