Tomcat の実行時にパッケージのバージョンを取得するには?
getClass().getPackage().getImplementationVersion() を試してみましたが、これは常に を返しますnull
。私の戦争がまだパッケージ化されておらず、Tomcat が .classes (爆発した戦争) を実行しているためだと思います。
META-INF\MANIFEST.MF
最終戦争には存在するが、target\<project.name>\META-INF
フォルダには存在しない
パッケージ オブジェクトには、Java パッケージの実装と仕様に関するバージョン情報が含まれています。このバージョン管理情報は、クラスをロードした ClassLoader インスタンスによって取得され、利用可能になります。通常、クラスとともに配布されるマニフェストに格納されます。
関連するのは、実行時に Maven アーティファクト バージョンを取得することです。
アップデート。war ビルドの構成を追加する前に。しかし、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>