Føj byggeegenskaber til en Spring Boot-applikation

1. Introduktion

Normalt indeholder vores projekts build-konfiguration en hel del information om vores applikation. Nogle af disse oplysninger kan være nødvendige i selve applikationen. Så i stedet for at hårdkode disse oplysninger, kan vi bruge dem fra den eksisterende build-konfiguration.

I denne artikel vil vi se hvordan man bruger information fra projektets buildkonfiguration i en Spring Boot-applikation.

2. Byggeoplysningerne

Lad os sige, at vi vil vise applikationsbeskrivelsen og versionen på vores hjemmesides startside.

Normalt er disse oplysninger til stede i pom.xml:

 4.0.0 spring-boot spring-boot war Dette er enkel opstartsapplikation til Spring boot actuator test 0.0.1-SNAPSHOT ... 

3. Henvisning til oplysningerne i filen med applikationsegenskaber

For at bruge ovenstående oplysninger i vores applikation skal vi først henvise dem til en af ​​vores applikationsegenskabsfiler:

[email protected] @ [email protected] @

Her har vi brugt værdien af ​​byggeejendommen Projekt Beskrivelse for at indstille applikationsegenskaben applikationsbeskrivelse. Tilsvarende applikationsversion indstilles ved hjælp af projekt.version.

Den mest betydningsfulde bit her er brugen af @ karakter omkring ejendommens navn. Dette fortæller Spring at udvide den navngivne ejendom fra Maven-projektet.

Når vi nu bygger vores projekt, erstattes disse egenskaber med deres værdier fra pom.xml.

Denne udvidelse kaldes også ressourcefiltrering. Det er værd at bemærke, at denne form for filtrering kun anvendes til produktionskonfigurationen. Derfor kan vi ikke bruge byggeegenskaberne i filerne under src / test / ressourcer.

En anden ting at bemærke er, at hvis vi bruger addResources flag, den spring-boot: løb mål tilføjer src / main / ressourcer direkte til klassestien. Selvom dette er nyttigt til genindlæsningsformål, omgår det filtrering af ressourcer og følgelig også denne funktion.

Nu, ovenstående ejendomsudvidelse fungerer kun out-of-the-box, hvis vi bruger spring-boot-starter-parent.

3.1. Udvidelse af ejendomme uden spring-boot-starter-parent

Lad os se, hvordan vi kan aktivere denne funktion uden at bruge spring-boot-starter-parent afhængighed.

Først skal vi aktivere ressourcefiltrering inde i element i vores pom.xml:

  src / main / resources true 

Her har vi aktiveret ressourcefiltrering under src / main / ressourcer kun.

Derefter kan vi tilføje afgrænsningskonfigurationen til maven-resources-plugin:

 org.apache.maven.plugins maven-resources-plugin @ false 

Bemærk, at vi har specificeret useDefaultDelimiters ejendom som falsk. Dette sikrer, at standard Spring-pladsholdere som $ {placeholder} ikke udvides af bygningen.

4. Brug af Build Information i YAML Files

Hvis vi bruger YAML til at gemme applikationsegenskaber, vi muligvis ikke kan bruge @ for at specificere byggeegenskaberne. Dette er fordi @ er en reserveret karakter i YAML.

Men vi kan overvinde dette af begge konfigurere en anden afgrænser i maven-resources-plugin:

 org.apache.maven.plugins maven-resources-plugin ^ false 

Eller bare ved tilsidesættelse af resource.delimiter ejendom i ejendomsblokken af vores pom.xml:

 ^ 

Så kan vi bruge ^ i vores YAML-fil:

applikationsbeskrivelse: ^ projekt.beskrivelse ^ applikationsversion: ^ projekt.version ^

5. Konklusion

I denne artikel så vi, hvordan vi kunne bruge Maven-projektoplysninger i vores applikation. Dette kan hjælpe os med at undgå hardcoding af de oplysninger, der allerede findes i projektbygningskonfigurationen i vores applikationsegenskabsfiler.

Og selvfølgelig kan koden, der ledsager denne vejledning, findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found