Vkladanie informácií o Gite do jari

1. Prehľad

V tomto tutoriáli si ukážeme, ako vložiť informácie z úložiska Git do aplikácie založenej na jarnom bootovaní, ktorú vytvoril Maven.

Použijeme na to maven-git-commit-id-plugin - praktický nástroj vytvorený výhradne na tento účel.

2. Maven závislosti

Pridajme doplnok do a časť našej pom.xml súbor nášho projektu:

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

Najnovšiu verziu nájdete tu. Majte na pamäti, že toto plugin vyžaduje minimálne 3.1.1 verziu Maven.

3. Konfigurácia

Plugin má veľa pohodlných príznakov a atribútov, ktoré rozširujú jeho funkčnosť. V tejto časti stručne opíšeme niektoré z nich. Ak ich chcete spoznať, navštívte stránku maven-git-commit-id-plugin a ak chcete ísť priamo k príkladu, prejdite na časť 4.

Nasledujúce úryvky obsahujú príklady atribútov doplnkov; uveďte ich v a oddiel podľa vašich potrieb.

3.1. Chýba úložisko

Môžete ho nakonfigurovať tak, aby vynechal chyby, ak sa nenašlo úložisko Git:

nepravdivé

3.2. Umiestnenie úložiska Git

Ak chcete zadať vlastné .git umiestnenie úložiska, použite dotGitDirectory atribút:

$ {project.basedir} /submodule_directory/.git

3.3. Výstupný súbor

Na vygenerovanie súboru vlastností s vlastným menom alebo adresárom použite nasledujúcu časť:

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

3.4. Výrečnosť

Pre veľkorysejšie použitie protokolovania:

pravda

3.5. Generovanie súboru vlastností

Môžete vypnúť vytváranie a git.properties spis:

nepravdivé

3.6. Predpona vlastností

Ak chcete určiť predponu vlastnej vlastnosti, použite:

git

3.7. Iba pre rodičovské úložisko

Pri práci s projektom s podmodulami sa nastavením tohto príznaku zabezpečí, aby doplnok fungoval iba pre nadradené úložisko:

pravda

3.8. Vylúčenie vlastností

Možno budete chcieť vylúčiť niektoré citlivé údaje, napríklad informácie o používateľovi úložiska:

 git.user. * 

3.9. Zahrnutie vlastností

Možné je tiež uviesť iba zadané údaje:

 git.commit.id 

4. Ukážka aplikácie

Vytvorme si vzorový radič REST, ktorý vráti základné informácie o našom projekte.

Ukážkovú aplikáciu vytvoríme pomocou Spring Boot. Ak neviete, ako nastaviť aplikáciu Spring Boot, prečítajte si úvodný článok: Konfigurácia webovej aplikácie Spring Boot.

Naša aplikácia bude pozostávať z 2 tried: Aplikácia a CommitIdController

4.1. Aplikácia

CommitIdApplication bude slúžiť ako koreň našej aplikácie:

@SpringBootApplication (scanBasePackages = {"com.baeldung.git"}) verejná trieda CommitIdApplication {public static void main (String [] args) {SpringApplication.run (CommitIdApplication.class, args); } @Bean public static PropertySourcesPlaceholderConfigurer placeholderConfigurer () {PropertySourcesPlaceholderConfigurer propsConfig = nový PropertySourcesPlaceholderConfigurer (); propsConfig.setLocation (nový ClassPathResource ("git.properties")); propsConfig.setIgnoreResourceNotFound (true); propsConfig.setIgnoreUnresolvablePlaceholders (true); návratové rekvizityConfig; }}

Okrem konfigurácie koreňa našej aplikácie sme vytvorili aj PropertyPlaceHolderConfigurer fazuľa, aby sme mali prístup k súboru vlastností vygenerovanému doplnkom.

Nastavili sme tiež niekoľko príznakov, aby aplikácia bežala hladko, aj keď by Spring nedokázala vyriešiť problém git.properties spis.

4.2. Kontrolór

@RestController verejná trieda CommitInfoController {@Value ("$ {git.commit.message.short}") súkromný reťazec commitMessage; @Value ("$ {git.branch}") súkromná vetva reťazca; @Value ("$ {git.commit.id}") private String commitId; @RequestMapping ("/ commitId") verejná mapa getCommitId () {výsledok mapy = nový HashMap (); result.put ("Commit message", commitMessage); result.put ("Commit branch", branch); result.put ("Commit id", commitId); návratový výsledok; }}

Ako vidíte, do polí triedy vkladáme vlastnosti Gitu.

Všetky dostupné vlastnosti nájdete na git.properties súbor alebo autorská stránka Github. Vytvorili sme tiež jednoduchý koncový bod, na ktorý na žiadosť HTTP GET odpovieme JSON obsahujúce vložené hodnoty.

4.3. Vstup Maven

Najskôr nastavíme kroky vykonávania, ktoré má vykonať doplnok, a ďalšie konfiguračné vlastnosti, ktoré považujeme za užitočné:

 pl.project13.maven git-commit-id-plugin 2.2.1 get-the-git-infos revízia validate-the-git-infos validateRevision 

Aby náš kód fungoval správne, musíme skončiť s git.properties súbor v našej triede. Aby sme to dosiahli, máme dve možnosti.

Prvým z nich je ponechanie generovania súboru na doplnku. Môžeme to určiť nastavením generateGitPropertiesFile konfiguračná vlastnosť a pravda hodnota:

 pravda 

Druhou možnosťou je zahrnúť a git.properties súbor v priečinku zdrojov sami. Môžeme zahrnúť iba položky, ktoré použijeme v našom projekte:

# 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. description} 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. time = $ {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 nahradí zástupné symboly príslušnými hodnotami.

Poznámka: Niektoré IDE s týmto doplnkom nefungujú dobre a pri definovaní vlastností, ako sme to robili vyššie, by sa pri bootstrape mohla hodiť chyba „kruhový odkaz na zástupný symbol“.

Po nabootovaní a vyžiadaní localhost: 8080 / commitId môžete vidieť súbor JSON so štruktúrou podobnou tejto:

{"Commit id": "7adb64f1800f8a84c35fef9e5d15c10ab8ecffa6", "Commit branch": "commit_id_plugin", "Commit message": "Zlúčiť vetvu 'master' do commit_id_plugin"}

5. Integrácia s pružinovým spúšťacím mechanizmom

Plugin s Spring Actuator môžete použiť jednoducho.

Ako sa dočítate v dokumentácii, GitInfoContributor vyberie git.properties súbor, ak je k dispozícii. Takže s predvolenou konfiguráciou doplnku sa informácie Git vrátia pri volaní /Info koncový bod:

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

6. Záver

V tomto tutoriáli sme si ukázali základy používania maven-git-commit-id-pluginu a vytvorili sme jednoduchú aplikáciu Spring Boot, ktorá využíva vlastnosti vygenerované pluginom.

Predložená konfigurácia nezahŕňa všetky dostupné príznaky a atribúty, ale pokrýva všetky základné informácie potrebné na začatie práce s týmto doplnkom.

Príklady kódov nájdete na stránkach Github.