Ubrizgavanje informacija o Gitu u proljeće

1. Pregled

U ovom uputstvu pokazat ćemo kako ubrizgati podatke o Git spremištu u Maven-izgrađenu aplikaciju koja se temelji na Spring Boot-u.

Da bismo to učinili, koristit ćemo maven-git-commit-id-plugin - prikladan alat stvoren isključivo u tu svrhu.

2. Ovisnosti Mavena

Dodajmo dodatak a odjeljak našeg pom.xml datoteka našeg projekta:

 pl.project13.maven git-commit-id-plugin 2.2.1 

Najnoviju verziju možete pronaći ovdje. Imajte na umu da ovo strlugin zahtijeva najmanje 3.1.1 verziju Mavena.

3. Konfiguracija

Dodatak ima mnogo prikladnih zastavica i atributa koji proširuju njegovu funkcionalnost. U ovom ćemo dijelu ukratko opisati neke od njih. Ako ih želite upoznati, posjetite stranicu maven-git-commit-id-plugin i ako želite ići izravno na primjer, idite na odjeljak 4.

Sljedeći isječci sadrže primjere atributa dodataka; navedite ih u a odjeljak prema vašim potrebama.

3.1. Nedostaje spremište

Možete ga konfigurirati da izostavlja pogreške ako Git spremište nije pronađeno:

lažno

3.2. Mjesto spremišta Git

Ako želite navesti custom .git mjesto spremišta, upotreba dotGitDirectory atribut:

$ {project.basedir} /submodule_directory/.git

3.3. Izlazna datoteka

Da biste generirali datoteku svojstava s prilagođenim imenom i / ili direktorijom, koristite sljedeći odjeljak:

 $ {project.build.outputDirectory} /filename.properties 

3.4. Govornost

Za izdašniju uporabu sječe:

pravi

3.5. Svojstva Generiranje datoteke

Možete isključiti stvaranje a git.svojstva datoteka:

lažno

3.6. Prefiks svojstava

Ako želite navesti prefiks prilagođenog svojstva, upotrijebite:

git

3.7. Samo za roditeljsko spremište

Kada radite s projektom s podmodulima, postavljanjem ove zastavice osigurava se da dodatak radi samo za nadređeno spremište:

pravi

3.8. Izuzimanje svojstava

Možda biste htjeli izuzeti neke osjetljive podatke, poput korisničkih podataka o spremištu:

 git.user. * 

3.9. Uključivanje svojstava

Također je moguće uključiti samo određene podatke:

 git.commit.id 

4. Primjer uzorka

Stvorimo uzorak REST kontrolera, koji će vratiti osnovne informacije o našem projektu.

Primjer aplikacije stvorit ćemo pomoću Spring Boot-a. Ako ne znate kako postaviti aplikaciju Spring Boot, pogledajte uvodni članak: Konfiguriranje web aplikacije Spring Boot.

Naša će se aplikacija sastojati od 2 klase: Primjena i CommIdController

4.1. Primjena

CommIdApplication poslužit će kao korijen naše aplikacije:

@SpringBootApplication (scanBasePackages = {"com.baeldung.git"}) javna klasa CommIdApplication {javna statička void glavna (String [] args) {SpringApplication.run (CommissIdApplication.class, args); } @Bean public static PropertySourcesPlaceholderConfigurer placeholderConfigurer () {PropertySourcesPlaceholderConfigurer propsConfig = new PropertySourcesPlaceholderConfigurer (); propsConfig.setLocation (novi ClassPathResource ("git.properties")); propsConfig.setIgnoreResourceNotFound (true); propsConfig.setIgnoreUnresolvablePlaceholders (true); vratiti propsConfig; }}

Osim što smo konfigurirali korijen naše aplikacije, kreirali smo ga PropertyPlaceHolderConfigurer bean tako da možemo pristupiti datoteci svojstava koju generira dodatak.

Također smo postavili neke zastavice, tako da bi aplikacija radila bez problema čak i ako Spring ne može riješiti git.svojstva datoteka.

4.2. Kontroler

@RestController javna klasa CommInfoController {@Value ("$ {git.commit.message.short}") private String commitMessage; @Value ("$ {git.branch}") privatna String grana; @Value ("$ {git.commit.id}") privatni niz commitId; @RequestMapping ("/ commitId") javna karta getCommitId () {Rezultat karte = novi HashMap (); result.put ("Poruka urezivanja", commitMessage); result.put ("Povlačenje grane", grana); result.put ("Id predavanja", commitId); povratni rezultat; }}

Kao što vidite, ubacujemo Git svojstva u polja klase.

Da biste vidjeli sva dostupna svojstva, pogledajte git.svojstva datoteka ili autorska Github stranica. Također smo stvorili jednostavnu krajnju točku koja će na HTTP GET zahtjev odgovoriti JSON koji sadrže ubrizgane vrijednosti.

4.3. Maven Entry

Prvo ćemo postaviti korake izvršenja koje će dodatak izvoditi, kao i sva druga svojstva konfiguracije koja smatramo korisnim:

 pl.project13.maven git-commit-id-plugin 2.2.1 revizija get-the-git-infos validate-the-git-infos validateRevision 

Da bi naš kod ispravno radio, moramo završiti s git.svojstva datoteku u našoj stazi. Da bismo to postigli, imamo dvije mogućnosti.

Prvo je prepustiti dodatku da generira datoteku. To možemo odrediti postavljanjem generiratiGitPropertiesFile svojstvo konfiguracije a pravi vrijednost:

 pravi 

Druga je mogućnost uključiti a git.svojstva datoteku u mapi resursa sami. Možemo uključiti samo unose koje ćemo koristiti u našem projektu:

# git.properties git.tags = $ {git.tags} git.branch = $ {git.branch} git.dirty = $ {git.dirty} git.remote.origin.url = $ {git.remote.origin. url} git.commit.id = $ {git.commit.id} git.commit.id.abbrev = $ {git.commit.id.abbrev} git.commit.id.describe = $ {git.commit.id. Opis} git.commit.id.describe-short = $ {git.commit.id.describe-short} git.commit.user.name = $ {git.commit.user.name} git.commit.user.email = $ {git.commit.user.email} git.commit.message.full = $ {git.commit.message.full} git.commit.message.short = $ {git.commit.message.short} git.commit. vrijeme = $ {git.commit.time} git.closest.tag.name = $ {git.closest.tag.name} git.closest.tag.commit.count = $ {git.closest.tag.commit.count} git.build.user.name = $ {git.build.user.name} git.build.user.email = $ {git.build.user.email} git.build.time = $ {git.build.time} git.build.host = $ {git.build.host} git.build.version = $ {git.build.version}

Maven će zamijeniti rezervirana mjesta odgovarajućim vrijednostima.

Napomena: Neki IDE-i ne rade dobro s ovim dodatkom i mogu pokrenuti pogrešku "kružna referenca rezerviranog mjesta" na bootstrapu kada definiramo svojstva kao što smo to učinili gore.

Nakon pokretanja i zahtjeva localhost: 8080 / commitId možete vidjeti JSON datoteku sa strukturom sličnom sljedećoj:

{"Id registra": "7adb64f1800f8a84c35fef9e5d15c10ab8ecffa6", "Grana urezivanja": "commit_id_plugin", "Objavi poruku": "Spoji građu 'master' u commit_id_plugin"}

5. Integracija s pokretačkim mehanizmom za podizanje opruge

Dodatak s Spring Actuatorom možete lako koristiti.

Kao što možete pročitati u dokumentaciji, GitInfoContributor izabrat će git.svojstva podnesite ako je dostupno. Dakle, sa zadanom konfiguracijom dodatka, Git podaci vraćaju se prilikom pozivanja / info krajnja točka:

{"git": {"branch": "commit_id_plugin", "commit": {"id": "7adb64f", "time": "2016-08-17T19: 30: 34 + 0200"}}}

6. Zaključak

U ovom smo tutorijalu pokazali osnovno korištenje maven-git-commit-id-plugin i stvorili jednostavnu aplikaciju Spring Boot koja koristi svojstva generirana dodatkom.

Prezentirana konfiguracija ne pokriva sve dostupne zastavice i atribute, ali obuhvaća sve osnove potrebne za početak rada s ovim dodatkom.

Primjere koda možete pronaći na Githubu.


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