Git-információk beadása tavaszra

1. Áttekintés

Ebben az oktatóanyagban bemutatjuk, hogyan lehet a Git-adattár adatait beinjektálni egy Maven-ben épített Spring Boot-alapú alkalmazásba.

Ehhez a maven-git-committ-id-plugint fogjuk használni - ez egy praktikus eszköz, amelyet kizárólag erre a célra hoztak létre.

2. Maven-függőségek

Adjunk hozzá egy plugint a szakaszunk pom.xml projektünk fájlja:

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

A legújabb verziót itt találja. Ne feledje, hogy ez oA luginhoz a Maven legalább 3.1.1 verziója szükséges.

3. Konfiguráció

A beépülő modul számos kényelmes jelölővel és attribútummal rendelkezik, amelyek kibővítik a funkcionalitását. Ebben a részben röviden leírjuk néhányukat. Ha mindegyiket meg akarja ismerni, látogasson el a maven-git-pühend-id-plugin oldalára, és ha egyenesen a példához szeretne menni, ugorjon a 4. szakaszra.

A következő kivonatok példákat tartalmaznak a plugin attribútumokra; adja meg őket a szakasz az Ön igényeinek megfelelően.

3.1. Hiányzik a tár

Beállíthatja úgy, hogy kihagyja a hibákat, ha a Git adattár nem található:

hamis

3.2. Git-tárház helye

Ha meg szeretné adni az egyéni beállítást .git tároló helye, használata dotGitDirectory tulajdonság:

$ {project.basedir} /submodule_directory/.git

3.3. Kimeneti fájl

Egyéni névvel és / vagy könyvtárral rendelkező tulajdonságfájl előállításához használja a következő szakaszt:

 $ {project.build.outputDirectory} / fájlnév.properties 

3.4. Bőbeszédűség

Bőkezűbb fakitermeléshez:

igaz

3.5. Tulajdonságok Fájlgenerálás

Kikapcsolhatja a git.tulajdonságok fájl:

hamis

3.6. Tulajdonságok előtagja

Ha egyéni tulajdonság előtagot szeretne megadni, használja:

git

3.7. Csak a szülői adattárhoz

Ha almodulokkal rendelkező projekttel dolgozik, akkor ennek a jelzőnek a beállításával biztosítani kell, hogy a bővítmény csak a szülőtár számára működjön:

igaz

3.8. Tulajdonságok kizárása

Érdemes kizárni néhány bizalmas adatot, például a tároló felhasználói adatait:

 git.user. * 

3.9. Tulajdonságok befogadása

Csak meghatározott adatok felvétele is lehetséges:

 git.commit.id 

4. Minta alkalmazás

Hozzunk létre egy minta REST vezérlőt, amely visszaadja az alapvető információkat a projektünkről.

A Spring Boot használatával létrehozzuk a minta alkalmazást. Ha nem tudja, hogyan állítsa be a Spring Boot alkalmazást, kérjük, olvassa el a bevezető cikket: A Spring Boot webalkalmazás beállítása.

Alkalmazásunk 2 osztályból áll: Alkalmazás és CommitIdController

4.1. Alkalmazás

CommitIdApplication alkalmazásunk gyökere lesz:

@SpringBootApplication (scanBasePackages = {"com.baeldung.git"}) public class CommitIdApplication {public static void main (String [] args) {SpringApplication.run (CommitIdApplication.class, args); } @Bean public static PropertySourcesPlaceholderConfigurer placeholderConfigurer () {PropertySourcesPlaceholderConfigurer propsConfig = new PropertySourcesPlaceholderConfigurer (); propsConfig.setLocation (új ClassPathResource ("git.properties")); propsConfig.setIgnoreResourceNotFound (true); propsConfig.setIgnoreUnresolvablePlaceholder (true); return propsConfig; }}

Az alkalmazás gyökerének konfigurálása mellett létrehoztunk PropertyPlaceHolderConfigurer babot, hogy hozzáférhessünk a plugin által létrehozott tulajdonságfájlhoz.

Beállítottunk néhány zászlót is, hogy az alkalmazás zökkenőmentesen működjön, még akkor is, ha Spring nem tudja megoldani a git.tulajdonságok fájl.

4.2. Vezérlő

@RestController nyilvános osztály CommitInfoController {@Value ("$ {git.commit.message.short}") privát karakterlánc-elkötelező üzenet; @Value ("$ {git.branch}") privát karakterlánc-ág; @Value ("$ {git.commit.id}") privát karakterlánc kötelezettségId; @RequestMapping ("/ pühendId") nyilvános térkép getCommitId () {Térkép eredménye = új HashMap (); result.put ("Commit üzenet", kötelezettségMessage); result.put ("Commit ág", ág); result.put ("Commit id", kötelezettségId); visszatérési eredmény; }}

Amint láthatja, a Git tulajdonságokat injektáljuk az osztálymezőkbe.

Az összes elérhető tulajdonság megtekintéséhez lásd: git.tulajdonságok fájl vagy a szerző Github oldala. Létrehoztunk egy egyszerű végpontot is, amely HTTP GET kérésre válaszolni fog egy JSON injektált értékeket tartalmaz.

4.3. Maven Entry

Először állítjuk be a plugin által végrehajtandó végrehajtási lépéseket, valamint minden egyéb konfigurációs tulajdonságot, amelyet hasznosnak tartunk:

 pl.project13.maven git-activ-id-plugin 2.2.1 get-the-git-infos revision validate-the-git-infos validateRevision 

A kódunk megfelelő működése érdekében a git.tulajdonságok fájl az osztályúton. Ennek elérésére két lehetőségünk van.

Az első az, hogy a pluginra bízza a fájl létrehozását. Ezt megadhatjuk a generálniGitPropertiesFile konfigurációs tulajdonság a igaz érték:

 igaz 

A második lehetőség a git.tulajdonságok fájl az erőforrások mappában. Csak azokat a bejegyzéseket vehetjük fel, amelyeket a projektünkben felhasználunk:

# 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. írja le: 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. idő = $ {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 helyettesíti a megfelelő értékeket.

Megjegyzés: Egyes IDE-k nem működnek jól ezzel a bővítménnyel, és előfordulhat, hogy egy „körkörös helyőrző hivatkozás” hibát dob ​​a bootstrapra, amikor a tulajdonságokat a fentieknek megfelelően definiáljuk.

Indítás és kérés után localhost: 8080 / kötelezettségId láthat egy JSON fájlt, amelynek felépítése hasonló a következőkhöz:

{"Commit id": "7adb64f1800f8a84c35fef9e5d15c10ab8ecffa6", "Commit branch": "pühend_id_plugin", "Commit üzenet": "Az" master "egyesítése a pühend_id_plugin"}

5. Integráció a rugós indítószerkezettel

A plug-in könnyen használható a Spring Actuatorral.

Amint a dokumentációban olvasható, GitInfoContributor felveszi git.tulajdonságok fájl, ha rendelkezésre áll. Tehát, az alapértelmezett plugin konfigurációval, a Git információ visszakerül hívás közben / info végpont:

{"git": {"branch": "kötelezettség_id_plugin", "elkötelezettség": {"id": "7adb64f", "time": "2016-08-17T19: 30: 34 + 0200"}}}

6. Következtetés

Ebben az oktatóanyagban bemutattuk a maven-git-committ-id-plugin használatának alapjait, és létrehoztunk egy egyszerű Spring Boot alkalmazást, amely kihasználja a plugin által létrehozott tulajdonságokat.

A bemutatott konfiguráció nem fedi le az összes elérhető zászlót és attribútumot, de minden olyan alapot tartalmaz, amely szükséges ahhoz, hogy elkezdhesse a munkát ezzel a pluginnal.

Kódpéldákat talál a Github oldalon.