【发布时间】:2013-02-02 18:22:13
【问题描述】:
运行Tomcat时如何获取包版本?
我尝试 getClass().getPackage().getImplementationVersion() 但这总是返回 null。
我想这是因为我的战争还没有打包,Tomcat 执行 .classes(又名爆炸战争)。
META-INF\MANIFEST.MF 出现在最终战争中,但不在 target\<project.name>\META-INF 文件夹中
包对象包含有关实现的版本信息 和 Java 包的规范。此版本信息是 由加载的 ClassLoader 实例检索并提供 类。通常,它存储在清单中 随类分发。
相关的是Get Maven artifact version at runtime
更新。在我已经为战争构建添加配置之前。但是当从 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>
【问题讨论】:
标签: java eclipse maven tomcat manifest.mf