מטרות ושלבים של Maven

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

במדריך זה נחקור מחזורי חיים שונים של בניית Maven ושלביהם.

נדון גם בקשר הליבה בין יעדים ושלבים.

2. Maven Build מחזור חיים

מבנה Maven עוקב אחר מחזור חיים ספציפי לפריסת והפצת פרויקט היעד.

ישנם שלושה מחזורי חיים מובנים:

  • ברירת מחדל: מחזור החיים העיקרי מכיוון שהוא אחראי על פריסת הפרויקט
  • נקי: לנקות את הפרויקט ולהסיר את כל הקבצים שנוצרו על ידי הבנייה הקודמת
  • אתר: ליצירת תיעוד האתר של הפרויקט

כל מחזור חיים מורכב מרצף שלבים. ה בְּרִירַת מֶחדָל מחזור החיים של בנייה מורכב מ -23 שלבים מכיוון שהוא מחזור החיים העיקרי של הבנייה.

מצד שני, לְנַקוֹת מחזור החיים מורכב משלושה שלבים, ואילו אֲתַר מחזור החיים מורכב מארבעה שלבים.

3. שלב Maven

שלב Maven מייצג שלב בבניית Maven מעגל החיים. כל שלב אחראי למשימה ספציפית.

להלן כמה מהשלבים החשובים ביותר ב בְּרִירַת מֶחדָל בניית מחזור חיים:

  • לְאַמֵת: בדוק אם כל המידע הדרוש לבנייה זמין
  • לְלַקֵט: לקמפל את קוד המקור
  • מבחן קומפילציה: לקמפל את קוד המקור לבדיקה
  • מִבְחָן: להריץ בדיקות יחידה
  • חֲבִילָה: חבילה קוד מקור שהורכב לפורמט הניתן להפצה (צנצנת, מלחמה, ...)
  • מבחן האינטגרציה: לעבד ולפרוס את החבילה במידת הצורך להפעלת מבחני אינטגרציה
  • להתקין: התקן את החבילה למאגר מקומי
  • לפרוס: העתק את החבילה למאגר המרוחק

לרשימה המלאה של כל שלבי מחזור החיים, עיין בסימוכין Maven.

השלבים מבוצעים לפי סדר מסוים. פירוש הדבר שאם נפעיל שלב ספציפי באמצעות הפקודה:

mvn 

זה לא רק יבצע את השלב שצוין אלא גם את כל השלבים הקודמים.

לדוגמא, אם אנו מפעילים את לפרוס שלב - שהוא השלב האחרון ב- בְּרִירַת מֶחדָל לבנות מחזור חיים - אשר יבצע את כל השלבים לפני לפרוס גם שלב, שהוא כולו בְּרִירַת מֶחדָל מעגל החיים:

mvn לפרוס

4. Maven Goal

כל שלב הוא רצף של יעדים, וכל מטרה אחראית למשימה ספציפית.

כאשר אנו מנהלים שלב - כל המטרות הקשורות לשלב זה מבוצעות לפי סדר.

להלן כמה מהשלבים ויעדי ברירת המחדל הקשורים אליהם:

  • מהדר: הידור - ה לְלַקֵט המטרה מה- מַהְדֵר התוסף קשור ל- לְלַקֵט שלב
  • מהדר: testCompile קשור ל מבחן-קומפילציה שלב
  • בטוח: מבחן מאוגד מִבְחָן שלב
  • להתקין: להתקין מאוגד להתקין שלב
  • צנצנת: צנצנת ו מלחמה: מלחמה מאוגד חֲבִילָה שלב

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

עזרה mvn: לתאר -Dcmd = PHASENAME

לדוגמה, לרשום את כל היעדים הקשורים ל לְלַקֵט שלב, אנחנו יכולים לרוץ:

עזרה mvn: לתאר -Dcmd = קומפילציה

וקבל את תפוקת המדגם:

קומפילציה 'היא שלב המתאים לתוסף זה: org.apache.maven.plugins: maven-compiler-plugin: 3.1: compile

אשר, כאמור לעיל, פירושו לְלַקֵט מטרה מ מַהְדֵר התוסף קשור ל- לְלַקֵט שלב.

5. תוסף Maven

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

לדוגמה, הנה תצורה פשוטה של ​​תוסף Maven Failsafe האחראי להפעלת בדיקות אינטגרציה:

   maven-failsafe-plugin $ {maven.failsafe.version} בדיקת שילוב בדיקה 

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

  • מבחן האינטגרציה: להריץ מבחני אינטגרציה
  • תאשר: לאמת את כל מבחני האינטגרציה שעברו

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

mvn: עזרה

לדוגמה, כדי לרשום את כל היעדים בתוסף Failsafe:

mvn failsafe: עזרה

והתפוקה של זה תהיה:

לתוסף זה יש 3 מטרות: failsafe: help הצגת מידע עזרה בתוסף maven-failsafe. התקשר ל- mvn failsafe: help -Ddetail = true -Dgoal = להצגת פרטי הפרמטר. failsafe: integration-test הפעל בדיקות אינטגרציה באמצעות Surefire. failsafe: אמת אמת את בדיקות השילוב שהופעלו באמצעות Surefire.

להפעיל מטרה ספציפית, מבלי לבצע את כל השלב שלה (ואת השלבים הקודמים) אנו יכולים להשתמש בפקודה:

mvn:

למשל, לרוץ מבחן האינטגרציה המטרה מתוסף Failsafe, אנחנו צריכים להריץ:

mvn failsafe: בדיקת שילוב

6. בניית פרויקט Maven

כדי לבנות פרויקט Maven, עלינו לבצע אחד ממחזורי החיים על ידי הפעלת אחד משלביהם:

mvn לפרוס

זה יבצע את כל כולו בְּרִירַת מֶחדָל מעגל החיים. לחלופין, אנו יכולים לעצור ב להתקין שלב:

להתקין mvn

אך בדרך כלל נשתמש בפקודה:

mvn נקי להתקין

כדי לנקות את הפרויקט תחילה - על ידי הפעלת לְנַקוֹת מחזור חיים - לפני הבנייה החדשה.

אנו יכולים להפעיל רק מטרה ספציפית של התוסף:

מהדר mvn: הידור

שים לב שאם ניסינו לבנות פרויקט של Maven מבלי לציין שלב או מטרה, זה יגרום לשגיאה:

[שגיאה] לא הוגדרו יעדים לבנייה זו. עליך לציין שלב מחזור חיים תקף או יעד

7. מסקנה

במאמר זה דנו במעגלי חיי בניין של מייבן וכן ביחס בין שלבי ומיין ליעדים.