從 jar 中獲取版本號
如果使用 maven-jar-plugin
或 maven-assembly-plugin
將應用程式打包到 jar
中,獲取當前 pom 版本的簡單方法是在清單中新增一個條目,然後可以從 Java 獲得。
祕訣是將 addDefaultImplementationEntries
標誌設定為 true(而 addDefaultSpecificationEntries
也需要工件 ID)。
jar 外掛配置 :
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>...</mainClass>
<addDefaultImplementationEntries>
true
</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
程式集外掛配置 :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
<executions>
<execution .../>
</executions>
</plugin>
addDefaultImplementationEntries
指示 Maven 將以下標題新增到 jar 的 MANIFEST.MF
:
Implementation-Title: display-version
Implementation-Version: 1.0-SNAPSHOT
Implementation-Vendor-Id: test
現在,你可以在 jar 中的任何位置使用此行程式碼來訪問版本號:
getClass().getPackage().getImplementationVersion()