从 pom 获取应用程序版本
2022-09-03 09:24:16
我有一个用于返回有关应用程序的信息的休息终结点(到目前为止只有应用程序版本),但到目前为止,此信息是硬编码的,很容易忘记更改它。我将更好地从pom或清单文件中检索应用程序版本。是否有任何项目带来了这样的功能?
我有一个用于返回有关应用程序的信息的休息终结点(到目前为止只有应用程序版本),但到目前为止,此信息是硬编码的,很容易忘记更改它。我将更好地从pom或清单文件中检索应用程序版本。是否有任何项目带来了这样的功能?
Spring Boot可以引用pom.xml中定义的项目版本,并使用执行器通过REST公开它:
# application.properties
endpoints.info.enabled=true
info.app.version=@project.version@
然后访问 /info URL(例如 http://localhost:8080/info)将返回:
{"app": {"version": "<major.minor.incremental>"}}
最好使用内置清单。
new Manifest(Application.class.getResourceAsStream("/META-INF/manifest.mf"))
对于具体版本:
new Manifest(Application.class.getResourceAsStream("/META-INF/manifest.mf"))
.getMainAttributes()
.get(Attributes.Name.IMPLEMENTATION_VERSION)
使用 maven 不要忘记使用以下命令创建清单:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>