gpt4 book ai didi

java - 从 WAR 获取实现版本

转载 作者:行者123 更新时间:2023-12-01 18:08:26 27 4
gpt4 key购买 nike

我有一个 Web 服务在 Wildfly 8.1.0 服务器内运行。

Web 服务的 WAR 文件在 MANIFEST.MF 文件中包含以下行:

实现版本:1.0.32

我想从 API 的端点之一读取此内容。我尝试了在互联网上找到的几种方法:

getClass().getPackage().getImplementationVersion()

返回空值。还有 jcabi list 库:

Manifests.read("Implementation-Version");

返回 8.1.0.Final。这让我觉得它实际上读取了 Wildfly 的 MANIFEST 文件。

如何读取 WAR 的 MANIFEST 文件中的内容?

最佳答案

这就是 Spring Boot 对 get back the implementation version from a Jar 所做的事情.

因为可以将 Web ARchive 视为与 Java ARchive 相同的方式(是的,大写是有意的),所以人们认为使用 JarFile 类来读取 list 就足够了.

此外,因为我不知道该 WAR 在您的项目生命周期中的什么位置,所以我无法指定与 Spring 的源代码(此处完整引用)不同的任何内容。您必须从某个地方读取该文件,然后您可以从中获取 list 。

private static String getImplementationVersion(JarFile jarFile) throws IOException {
return jarFile.getManifest().getMainAttributes().getValue(Attributes.Name.IMPLEMENTATION_VERSION);
}

关于java - 从 WAR 获取实现版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60512332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com