当前位置: 首页 > 知识库问答 >
问题:

Sprint-boot-project-我需要获得spring boot应用程序的版本和它所运行的端口

陶泳
2023-03-14

今天我得到了一个需求,在这里我必须创建一个公共模块来公开应用程序的版本,而不改变父应用程序中的任何内容

公共模块groupId:com.mhn.version,artifactid:version-endpoint packaging:jar versionController.java-在这里,我将把REST服务“/version”公开为返回详细信息的GET方法

在任何spring boot应用程序中,如果我将这个jar(module)添加为依赖项,那么在不改变父应用程序中的任何内容的情况下,它应该获取应用程序的artifactId和Version。在本例中为1.0.1-快照

例如,如果我将其作为依赖项添加到spring-boot-sample-1.0.1-snapshot.war应用程序中,如下文pom.xml所述

<groupdId>com.parent.app</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>com.mhn.version</groupId>
      <artifactId>version-endpoint</artifactId>
      <version>1.0</version>
    </dependency>
</dependencies>

那么spring-boot-sample-1.0.1-snapshot必须公开一个服务“/版本”。通过点击该endpoint,它应该返回maven project.artifactid和project.version详细信息

在本例中

{
"artifactId" : "spring-boot-sample"
"version" : "1.0.1-SNAPSHOT"
}

指导我,如果我们有任何第三方罐子,如果没有指导我如何做到这一点。

请注意,我们不会在父应用程序中做任何更改

共有1个答案

柴琨
2023-03-14

spring boot执行器将通过一些项目配置为您做这件事,如文档中所示。修改构建配置,使其看起来如下所示:

<groupdId>com.parent.app</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.2.5.RELEASE</version>
      <executions>
        <execution>
          <goals>
            <goal>build-info</goal>
          </goals>
        </execution>
      </executions>
      ...
    </plugin>
  </plugins>
</build>

将启用来自/acture/info端点的响应,该响应可能如下所示:

{
    "build": {
        "artifact": "spring-boot-sample",
        "group": "com.parent.app",
        "name": "spring-boot-sample",
        "time": "2020-03-06T16:29:01.200Z",
        "version": "1.0.1-SNAPSHOT"
    }
}

如果由于某种原因不能使用引导执行器,则可以通过使用类路径:meta-inf/build-info.properties访问作为资源的文件,读取spring-boot-maven-pluginbuild-info目标在自己的库代码中编写的内容。

 类似资料: