Sprint-boot-project - у меня есть требование получить версию весеннего загрузочного приложения и порт, на котором оно запущено - PullRequest
0 голосов
/ 06 марта 2020

Сегодня у меня есть требование, где я должен создать общий модуль, чтобы представить версию приложения, не меняя ничего в родительском приложении

Общий модуль groupId: com.mhn.version, artifactId: version- упаковка конечной точки: jar VersionController. java - где я буду предоставлять службу REST "/ version" как метод GET, который возвращает подробности

В любом приложении весенней загрузки, если я добавлю этот jar (модуль) в качестве зависимости затем, ничего не изменяя в родительском приложении, он должен получить artifactId и версию приложения. Вот в этом случае 1.0.1-SNAPSHOT

Например, если я добавлю это как зависимость в приложение 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 должен предоставить сервис "/ version". и при достижении этой конечной точки он должен вернуть maven project.artifactId и project.version детали

В этом примере

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

Направьте меня, если у нас есть какие-либо сторонние фляги, если не наведите меня о том, как это сделать.

Сделайте это как примечание, мы не собираемся вносить какие-либо изменения в родительское приложение

1 Ответ

0 голосов
/ 06 марта 2020

Приводы 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>

Включит ответ от конечной точки /actuator/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"
    }
}

Если по какой-то причине вы не можете использовать загрузочные приводы, вы можете прочитать содержимое, записанное spring-boot-maven-plugin s build-info goal, в коде вашей собственной библиотеки, обратившись к файлу как к ресурсу с помощью classpath:META-INF/build-info.properties.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...