如何在运行 Tomcat 时获取软件包版本?
我尝试 getClass().getPackage().getImplementationVersion() 但这总是返回null
。我想这是因为我的战争还没有打包,Tomcat 执行 .classes(又名爆炸战争)。
META-INF\MANIFEST.MF
存在于最终战争中,但不在target\<project.name>\META-INF
文件夹中
包对象包含有关 Java 包的实现和规范的版本信息。此版本信息由加载类的 ClassLoader 实例检索并提供。通常,它存储在与类一起分发的清单中。
更新。在我已经为战争构建添加配置之前。但是当从 Eclipse 运行 Tomcat 时,我得到null
.
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
<!-- this actually moves classes from \WEB-INF\classes to new jar
<archiveClasses>true</archiveClasses>
-->
</configuration>
</plugin>