הזרקת מידע גיט לאביב

1. סקירה כללית

במדריך זה אנו נראה כיצד להזריק מידע על מאגר Git ליישום מבוסס Boot Boot שנבנה על ידי Maven.

על מנת לעשות זאת נשתמש בתוסף maven-git-commit-id - כלי שימושי שנוצר אך ורק למטרה זו.

2. תלות Maven

בואו נוסיף תוסף ל- a החלק שלנו pom.xml קובץ הפרויקט שלנו:

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

תוכל למצוא את הגרסה האחרונה כאן. זכור כי זה עמ 'lugin דורש לפחות גרסת 3.1.1 של Maven.

3. תצורה

לתוסף יש דגלים ותכונות נוחות רבות המרחיבות את הפונקציונליות שלו. בחלק זה אנו מתארים בקצרה כמה מהם. אם אתה רוצה להכיר את כולם, בקר בדף התוסף של maven-git-commit-id-plugin, ו אם אתה רוצה ללכת ישר לדוגמא, עבור לסעיף 4.

הקטעים הבאים מכילים דוגמאות למאפייני תוספים; ציין אותם ב- סעיף בהתאם לצרכים שלך.

3.1. מאגר חסר

אתה יכול להגדיר את זה כך שישמיט שגיאות אם מאגר Git לא נמצא:

שֶׁקֶר

3.2. מיקום מאגר Git

אם אתה רוצה לציין מותאם אישית .git מיקום מאגר, שימוש dotGitDirectory תְכוּנָה:

$ {project.basedir} /submodule_directory/.git

3.3. קובץ פלט

על מנת ליצור קובץ מאפיינים עם שם ו / או ספרייה מותאמים אישית, השתמש בסעיף הבא:

 $ {project.build.outputDirectory} / קובץ נכסים 

3.4. מֶלֶל

לשימוש רישום נדיב יותר:

נָכוֹן

3.5. מאפייני יצירת קבצים

באפשרותך לבטל יצירה של git.properties קוֹבֶץ:

שֶׁקֶר

3.6. קידומת נכסים

אם ברצונך לציין קידומת מאפיין מותאם אישית, השתמש ב:

git

3.7. רק למאגר הורים

כשעובדים עם פרויקט עם מודולי משנה, הגדרת דגל זה מוודאת שהתוסף פועל רק למאגר האב:

נָכוֹן

3.8. אי הכללת נכסים

ייתכן שתרצה לא לכלול נתונים רגישים כמו פרטי משתמש במאגר:

 git.user. * 

3.9. הכללת נכסים

ניתן לכלול רק נתונים שצוינו:

 git.commit.id 

4. יישום לדוגמא

בואו ניצור בקר REST לדוגמא, שיחזיר מידע בסיסי על הפרויקט שלנו.

ניצור את אפליקציית הדוגמה באמצעות Spring Boot. אם אינך יודע כיצד להגדיר יישום Spring Boot, עיין במאמר ההיכרות: הגדר יישום אינטרנט אתחול Spring.

האפליקציה שלנו תורכב משתי שיעורים: יישום ו CommitIdController

4.1. יישום

CommitIdApplication ישמש שורש ליישום שלנו:

@SpringBootApplication (scanBasePackages = {"com.baeldung.git"}) Class public CommitIdApplication {public static void main (String [] args) {SpringApplication.run (CommitIdApplication.class, args); } @Bean ציבור סטטי PropertySourcesPlaceholderConfigurer placeholderConfigurer () {PropertySourcesPlaceholderConfigurer propsConfig = חדש PropertySourcesPlaceholderConfigurer (); propsConfig.setLocation (ClassPathResource חדש ("git.properties")); propsConfig.setIgnoreResourceNotFound (נכון); propsConfig.setIgnoreUnresolvablePlaceholders (true); להחזיר propsConfig; }}

מלבד הגדרת התצורה של שורש היישום שלנו, יצרנו PropertyPlaceHolderConfigurer שעועית כך שנוכל לגשת לקובץ המאפיינים שנוצר על ידי התוסף.

קבענו גם כמה דגלים, כך שהיישום יפעל בצורה חלקה גם אם אביב לא יכול היה לפתור את git.properties קוֹבֶץ.

4.2. בקר

@RestController מחלקה ציבורית CommitInfoController {@Value ("$ {git.commit.message.short}") פרטי מחרוזת commitMessage; @Value ("$ {git.branch}") סניף מחרוזת פרטי; @Value ("$ {git.commit.id}") commit מחרוזת פרטי; @RequestMapping ("/ commitId") מפה ציבורית getCommitId () {Map result = new HashMap (); result.put ("מסר התחייבות", commitMessage); result.put ("סניף התחייבות", סניף); result.put ("מזהה התחייבות", commitId); תוצאת החזרה; }}

כפי שאתה יכול לראות אנו מזריקים מאפייני Git לשדות מחלקה.

כדי לראות את כל המאפיינים הזמינים עיין ב git.properties קובץ או דף Github של המחבר. יצרנו גם נקודת סיום פשוטה שעל פי בקשת HTTP GET תענה עליה ג'סון המכיל ערכים מוזרקים.

4.3. כניסת Maven

ראשית נגדיר את שלבי הביצוע שיבוצע על ידי התוסף, בתוספת כל מאפיין תצורה אחר שנראה לנו שימושי:

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

על מנת שהקוד שלנו יפעל כראוי, עלינו בסופו של דבר עם a git.properties הקובץ בשביל הכיתה שלנו. כדי להשיג זאת, יש לנו שתי אפשרויות.

הראשון הוא להשאיר את התוסף ליצירת הקובץ. אנו יכולים לציין זאת על ידי הגדרת ה- createGitPropertiesFile מאפיין תצורה א נָכוֹן ערך:

 נָכוֹן 

האפשרות השנייה היא לכלול א git.properties קובץ בעצמנו בתיקיית המשאבים. אנו יכולים לכלול רק את הערכים בהם נשתמש בפרויקט שלנו:

# 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.desribe = $ {git.commit.id. לתאר} 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. זמן = $ {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 יחליף את מצייני המיקום בערכים המתאימים.

הערה: כמה מזהי IDE לא עובדים טוב עם התוסף הזה, ועשויים להשליך שגיאת 'הפניה למיקום עגול' על bootstrap כאשר אנו מגדירים את המאפיינים כפי שעשינו לעיל.

לאחר אתחול ובקשה localhost: 8080 / commitId אתה יכול לראות קובץ JSON עם מבנה דומה לזה:

{"מזהה התחייבות": "7adb64f1800f8a84c35fef9e5d15c10ab8ecffa6", "סניף התחייבות": "commit_id_plugin", "מסר התחייבות": "מיזוג 'מאסטר' של הסניף לתוך commit_id_plugin"}

5. אינטגרציה עם מפעיל אתחול האביב

אתה יכול להשתמש בפלאגין עם Spring Actuator בקלות.

כפי שאתה יכול לקרוא בתיעוד, תורם GitInfo אבחר git.properties תייק אם זמין. לכן, עם תצורת התוסף המוגדרת כברירת מחדל, מידע Git יוחזר בעת שיחה / מידע נקודת סיום:

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

6. מסקנה

במדריך זה הראינו את הבסיס של השימוש ב- maven-git-commit-id-plugin ויצרנו יישום Spring Boot פשוט, העושה שימוש במאפיינים שנוצרו על ידי התוסף.

התצורה המוצגת אינה מכסה את כל הדגלים והתכונות הזמינים, אך היא מכסה את כל היסודות הדרושים כדי להתחיל לעבוד עם תוסף זה.

תוכל למצוא דוגמאות קוד ב- Github.


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