Skip to content
Advertisement

Get Maven artifact version at runtime

I have noticed that in a Maven artifact’s JAR, the project.version attribute is included in two files:

JavaScript

Is there a recommended way to read this version at runtime?

Advertisement

Answer

You should not need to access Maven-specific files to get the version information of any given library/class.

You can simply use getClass().getPackage().getImplementationVersion() to get the version information that is stored in a .jar-files MANIFEST.MF. Unfortunately Maven does not write the correct information to the manifest as well by default!

Instead one has to modify the <archive> configuration element of the maven-jar-plugin to set addDefaultImplementationEntries and addDefaultSpecificationEntries to true, like this:

JavaScript

Ideally this configuration should be put into the company pom or another base-pom.

Detailed documentation of the <archive> element can be found in the Maven Archive documentation.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement