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.