מדריך לפרופילי Maven

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

ניתן להשתמש בפרופילי Maven ליצירת תצורות בנייה מותאמות אישית, כמו מיקוד לרמת פירוט הבדיקה או לסביבת פריסה ספציפית.

במדריך זה נלמד כיצד לעבוד עם פרופילי Maven.

2. דוגמה בסיסית

בדרך כלל כשאנחנו רצים חבילת mvn, בדיקות היחידות מבוצעות גם כן. אבל מה אם נרצה לארוז את החפץ במהירות ולהפעיל אותו לראות אם זה עובד?

ראשית, ניצור ללא מבחנים פרופיל שמגדיר את maven.test.skip נכס ל נָכוֹן:

 אין מבחנים נכון 

לאחר מכן נבצע את הפרופיל על ידי הפעלת ה- חבילת mvn - בדיקות Pno פקודה. כעת נוצר החפץ ומדלגים על הבדיקות. במקרה זה ה- חבילת mvn -Dmaven.test.skip הפקודה הייתה קלה יותר.

עם זאת, זו הייתה רק הקדמה לפרופילי Maven. בואו נסתכל על מספר מערכים מורכבים יותר.

3. הצהרת פרופילים

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

נניח שרצינו ליצור פרופיל שרץ רק את מבחני האינטגרציה שלנו ואחר עבור קבוצה של מבחני מוטציה.

נתחיל בלציין תְעוּדַת זֶהוּת לכל אחד שלנו pom.xml קוֹבֶץ:

  מבחני אינטגרציה מבחני מוטציה 

בתוך כל אחד פּרוֹפִיל אֵלֵמֶנט, אנו יכולים להגדיר אלמנטים רבים כגון תלות, תוספים, אֶמְצָעִי, finalName.

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

הפרדת מבחנים לפרופילים יכולה להפוך את ברירת המחדל לבנות מהר יותר בכך שהיא מתמקדת, למשל, רק במבחני היחידות.

3.1. היקף פרופיל

עכשיו, פשוט מיקמנו את הפרופילים האלה בפרופיל שלנו pom.xml קובץ, שמצהיר עליהם רק עבור הפרויקט שלנו.

אבל ב- Maven 3 אנו יכולים להוסיף פרופילים לכל אחד משלושת המיקומים:

  1. פרופילים ספציפיים לפרויקט נכנסים לפרופילים pom.xml קוֹבֶץ
  2. פרופילים ספציפיים למשתמש נכנסים לפרופילים של המשתמש settings.xml קוֹבֶץ
  3. פרופילים גלובליים נכנסים לגלובלי settings.xml קוֹבֶץ

שים לב כי Maven 2 אכן תמך במיקום רביעי, אך זה הוסר ב- Maven 3.

אנו מנסים להגדיר פרופילים ב- pom.xml מתי שאפשר. הסיבה היא שאנחנו רוצים להשתמש בפרופילים גם במכונות הפיתוח שלנו וגם במכונות הבנייה. משתמש ב settings.xml קשה יותר ונוטה לטעויות מכיוון שעלינו להפיץ אותו על פני סביבות בנייה בעצמנו.

4. הפעלת פרופילים

לאחר שניצור פרופיל אחד או יותר אנחנו יכולים להתחיל להשתמש בהם, או במילים אחרות, מפעילה אוֹתָם.

4.1. לראות אילו פרופילים פעילים

בואו נשתמש ב- עזרה: פרופילים פעילים המטרה לראות אילו פרופילים פעילים בבניית ברירת המחדל שלנו:

עזרה mvn: פרופילים פעילים

למעשה, מכיוון שעדיין לא הפעלנו דבר, אנו מקבלים:

הפרופילים הבאים פעילים:

טוב כלום.

נפעיל אותם רק בעוד רגע. אבל במהירות, דרך אחרת לראות מה מופעל היא כולל את תוסף maven-help בשלנו pom.xml ולקשור את פרופילים פעילים המטרה ל לְלַקֵט שלב:

   org.apache.maven.plugins maven-help-plugin 3.2.0 פרופילי מופע מחברים פרופילים פעילים 

עכשיו, בואו נשתמש להשתמש בהם! נבחן כמה דרכים שונות.

4.2. באמצעות -P

למעשה, כבר ראינו דרך אחת בהתחלה, והיא שאנחנו יכולים להפעיל פרופילים באמצעות -P טַעֲנָה.

בואו נתחיל בהפעלת ה- מבחן האינטגרציה פּרוֹפִיל:

חבילת mvn-מבחני שילוב P

אם אנו מאמתים את הפרופילים הפעילים, עם תוסף maven-help או ה עזרה mvn: פרופילים פעילים -בדיקות שילוב P נקבל את התוצאה הבאה:

הפרופילים הבאים פעילים: - מבחני שילוב

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

חבילת mvn-מבחני שילוב P, מבחני מוטציה

4.3. פעיל כברירת מחדל

אם אנחנו תמיד רוצים לבצע פרופיל, אנחנו יכולים להפוך אותו לפרופיל כברירת מחדל:

 מבחני אינטגרציה נכונים 

ואז נוכל לרוץ חבילת mvn מבלי לציין את הפרופילים, ואנחנו יכולים לאמת שה- מבחן האינטגרציה הפרופיל פעיל.

עם זאת, אם אנו מריצים את הפקודה Maven ומאפשרים פרופיל אחר מזה activeByDefault דילוג על הפרופיל. אז כשאנחנו רצים חבילת mvn - בדיקות מוטציה P ואז רק ה בדיקות מוטציה הפרופיל פעיל.

כאשר אנו מפעילים בדרכים אחרות, activeByDefault פרופיל הוא דילג כמו שנראה בסעיפים הבאים.

4.4. מבוסס על נכס

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

 סביבה פעילה-על-נכס 

כעת אנו מפעילים את הפרופיל עם ה- חבילת mvn -סביבה פקודה.

ניתן גם להפעיל פרופיל אם נכס אינו קיים:

 !סביבה 

או שנוכל להפעיל את הפרופיל אם לנכס יש ערך ספציפי:

 מבחן סביבה 

כעת אנו יכולים להריץ את הפרופיל באמצעות חבילת mvn -סביבה = מבחן.

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

 סביבה! מבחן 

4.5. מבוסס על ה JDK גִרְסָה

אפשרות נוספת היא לאפשר פרופיל המבוסס על ה- JDK הפועל במכונה. במקרה זה, אנו רוצים לאפשר את הפרופיל אם גרסת JDK מתחילה עם 11:

 פעיל ב- jdk-11 11 

אנו יכולים גם להשתמש בטווחים עבור גרסת JDK כפי שהוסבר בתחביר Maven Version Range.

4.6. מבוסס על מערכת ההפעלה

לחלופין, אנו יכולים להפעיל את הפרופיל על סמך מידע כלשהו על מערכת ההפעלה.

ואם איננו בטוחים בכך, ראשית נוכל להשתמש ב- אכיפת mvn: הצגת מידע פקודה המספקת את הפלט הבא במחשב שלי:

גרסת Maven: 3.5.4 גרסת JDK: 11.0.2 מנורמלת כמו: 11.0.2 מידע על מערכת ההפעלה: קשת: amd64 משפחה: windows שם: windows 10 גרסה: 10.0

לאחר מכן, אנו יכולים להגדיר פרופיל שמופעל רק ב- Windows 10:

 פעיל על חלונות -10 חלונות 10 חלונות amd64 10.0 

4.7. מבוסס על קובץ

אפשרות נוספת היא הפעלת פרופיל אם קובץ קיים או שהוא חָסֵר.

אז בואו ניצור פרופיל בדיקה שמבוצע רק אם testreport.html עדיין לא נוכח:

  target / testreport.html 

5. השבתת פרופיל

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

כדי להשבית פרופיל נוכל להשתמש ב'! ' או '-'.

אז, כדי להשבית את פעיל ב- jdk-11 פרופיל שאנחנו מבצעים את mvn לקמפל -P -active-on-jdk-11 פקודה.

6. מסקנה

במאמר זה ראינו כיצד לעבוד עם פרופילי Maven, כך שנוכל ליצור תצורות בנייה שונות.

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

אל תהסס להעיף מבט על המוגמר pom.xml הקובץ ב- GitHub.