按照Java Specification应当可以通过

getClass().getPackage().getImplementationVersion()

或者

getClass().getPackage().getSpecificationVersion()

实际上,这个值是依赖Java Jar规范的manifest信息。

这个链接是这个信息的详细规范。

显然每次打包的时候手工写入这个文件是件坑爹的事情,我们需要将这个业务工程化,而且Maven已经做到了这点。

非常简单的添加:

    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                </manifest>
            </archive>
        </configuration>
    </plugin>

到我们pom.xml的build模块即可。

package it & enjoy it!