Чтобы получить версию из фляги, используйте:
OneOfYourClasses.class.getPackage().getImplementationVersion();
Это предполагает, что вы установили версию реализации в MANIFEST.MF, что вы можете сделать во время сборки.Это может включать дату.
С Maven maven-shade-plugin
может сделать это для вас с преобразователем ManifestResourceTransformer (я просто использую версию из pom здесь):
<manifestEntries>
<Implementation-Title>${project.artifactId}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
Должен быть подобный плагин для gradle.
EDIT: Gradle делает это еще проще (из https://docs.gradle.org/current/userguide/java_plugin.html):
jar {
manifest {
attributes("Implementation-Title": "YourJarName",
"Implementation-Version": version)
}
}
EDIT: если вы работаете в Linux, вы можете увидеть версию изкомандная строка с:
unzip -p yourfile.jar META-INF/MANIFEST.MF | grep Implementation-Version