Canigó. Exposar informació del POM de l'aplicació

Darrera actualització: 14-07-2022

Introducció

Spring Boot inclou una sèrie de funcions addicionals per a ajudar a supervisar i gestionar les aplicacions.

L’objectiu d’aquest article és mostrar l’ús del servei info de l’actuator de Spring per a exposar la informació dinàmica de construcció de l’aplicació.

Justificació

Un dels principals reptes d’una aplicació és exposar de forma fàcil i ràpida informació de compilació de l’aplicació. En aquest sentit:

  • El plugin spring-boot-maven-plugin s’encarrega de generar el fitxer build-info.properties amb informació detallada de construcció de l’aplicació extreta del fitxer POM (Project Object Model) de l’aplicació,

  • La llibreria spring-boot-starter-actuator ofereix (entre molts altres com: beans, mètriques, health, conditions, logger, etcètera) l’http endpoint info que proporciona informació que ens servirà per a identificar el servei.

A continuació s’explica com configurar i fer ús d’aquests dos components per a exposar aquesta informació i així permetre a l’usuari, per exemple, identificar la versió desplegada en cada moment.

Plugin spring-boot-maven-plugin

Configuració

Per a fer servir el spring-boot-maven-plugin serà necessari afegir-lo al fitxer pom.xml de l’aplicació i configurar el goal build-info. En cas de generar l’aplicació mitjançant el Plugin de Canigó per Eclipse, el projecte ja disposarà d’aquest plugin configurat per defecte. No obstant això, caldrà afegir el corresponent goal tal com es mostra a continuació:

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

Funcionament

En executar la comanda de construcció Maven, el plugin generarà el fitxer ./target/classes/META-INF/build-info.properties amb informació detallada de construcció de l’aplicació. Per exemple:

  build.artifact=TestCanigo
  build.group=cat.gencat.testcanigo
  build.name=Nom del projecte
  build.time=2022-07-04T10\:25\:01.770Z
  build.version=1.0.0

Actuator de Spring Boot

Configuració

Per a fer ús de l’actuator de Spring Boot serà necessari afegir la corresponent llibreria com a dependència al fitxer pom.xml de l’aplicació, tal com es mostra a continuació:

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <exclusions>
      <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
      </exclusion>
    </exclusions>
  </dependency>

L’actuator ofereix diferents endpoints amb informació diversa. En aquest cas, caldrà configurar l’endpoint info al fitxer application.yml:

management:
  endpoints:
    web:
      exposure:
        include: info
  info:
    git:
      mode: full
      enabled: true

Funcionament

Un cop construïda i iniciada l’aplicació, es podrà accedir via navegador web a l’endpoint info i ens mostrarà la informació detallada de construcció de l’aplicació. Es pot veure al següent exemple:

Actuator info amb Build Info

Conclusió

És possible configurar un projecte Canigó per a permetre consultar de forma fàcil i ràpida la informació de construcció de l’aplicació.

Referències

Per a més informació podeu consultar: