我有一个REST端点,用于返回有关应用程序的信息(到目前为止只有应用程序版本),但到目前为止,这些信息是硬编码的,很容易忘记更改它。我会更好地从POM或清单文件检索应用程序版本。有没有什么项目能带来这样的功能?
vhmi4jdf1#
Spring Boot可以引用pom.xml中定义的项目版本,并使用Actuator通过REST公开它:
# application.properties endpoints.info.enabled=true info.app.version=@project.version@
然后访问/INFO URL(例如http://localhost:8080/info)将返回:
{"app": {"version": "<major.minor.incremental>"}}
另请参阅:spring boot/spring web app embedded version number
dba5bblo2#
您最好使用内置清单。
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>
wixjitnu3#
有一个很棒的项目叫Appinfo,请使用它并享受!(我知道它的页面很难看,但它很管用:)AppInfo允许自动向您的应用程序提供当前版本号、构建日期或内部版本号。
此外,卓越的Spring Boot Actuator提供了名为Info Endpoint的功能,可以将版本信息发布到Web或REST。
默认情况下,Actuator会将/INFO端点添加到主服务器。它包含来自git.properties(如果该文件存在)的提交和时间戳信息,以及它在环境中找到的前缀为“INFO”的任何属性。
egdjgwm84#
您可以使用maven的resource filtering或类似maven-substitute-plugin的东西。
maven-substitute-plugin
4条答案
按热度按时间vhmi4jdf1#
Spring Boot可以引用pom.xml中定义的项目版本,并使用Actuator通过REST公开它:
然后访问/INFO URL(例如http://localhost:8080/info)将返回:
另请参阅:spring boot/spring web app embedded version number
dba5bblo2#
您最好使用内置清单。
对于具体的实施版本:
使用Maven时,不要忘记使用以下命令创建清单:
wixjitnu3#
有一个很棒的项目叫Appinfo,请使用它并享受!(我知道它的页面很难看,但它很管用:)
AppInfo允许自动向您的应用程序提供当前版本号、构建日期或内部版本号。
此外,卓越的Spring Boot Actuator提供了名为Info Endpoint的功能,可以将版本信息发布到Web或REST。
默认情况下,Actuator会将/INFO端点添加到主服务器。它包含来自git.properties(如果该文件存在)的提交和时间戳信息,以及它在环境中找到的前缀为“INFO”的任何属性。
egdjgwm84#
您可以使用maven的resource filtering或类似
maven-substitute-plugin
的东西。