Вам не нужно обращаться к файлам, относящимся к Maven, чтобы получить информацию о версии любой заданной библиотеки / класса.
Вы можете просто использовать getClass().getPackage().getImplementationVersion()
, чтобы получить информацию о версии, которая хранится в .jar-файлах MANIFEST.MF
. К счастью, Maven достаточно умен К сожалению, по умолчанию Maven также не записывает правильную информацию в манифест!
Вместо этого нужно изменить <archive>
элемент конфигурации maven-jar-plugin
, чтобы установить addDefaultImplementationEntries
и addDefaultSpecificationEntries
на true
, например:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
В идеале эту конфигурацию следует поставить в компанию pom
или другую базовую помпу.
Подробную документацию по элементу <archive>
можно найти в документации Maven Archive .