אביב עם Maven BOM

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

במדריך מהיר זה, נבחן כיצד Maven, כלי המבוסס על הרעיון של Project Object Model (POM), יכול לעשות שימוש ב- BOM או "Bill of Materials".

לפרטים נוספים אודות Maven, תוכלו לעיין במאמר שלנו מדריך Apache Maven.

2. מושגי ניהול תלות

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

2.1. מה זה Maven POM?

Maven POM הוא קובץ XML המכיל מידע ותצורות (אודות הפרויקט) המשמשים את Maven לייבוא ​​תלות ולבניית הפרויקט.

2.2. מה זה Maven BOM?

BOM מייצג Bill of Materials. BOM הוא סוג מיוחד של POM המשמש לבקרת גרסאות התלות של הפרויקט ומספק מקום מרכזי להגדיר ולעדכן גרסאות אלה.

BOM מספק את הגמישות להוסיף תלות למודול שלנו מבלי לדאוג לגירסה שאנחנו צריכים להיות תלויים בה.

2.3. תלות מעבר

מייבן יכול לגלות את הספריות הדרושות לתלות שלנו pom.xml וכולל אותם אוטומטית. אין הגבלה על מספר רמות התלות שממנו נאספות הספריות.

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

התשובה כאן היא "ההגדרה הקרובה ביותר". המשמעות היא שהגרסה המשמשת תהיה הקרובה ביותר לפרויקט שלנו בעץ התלות. זה נקרא גישור תלות.

בואו נראה את הדוגמה הבאה כדי להבהיר את גישור התלות:

A -> B -> C -> D 1.4 ו- A -> E -> D 1.0

דוגמה זו מראה את אותו פרויקט א תלוי ב ב ו הב ו ה יש תלות משלהם אשר נתקלים בגרסאות שונות של ד חפץ. חפץ ד 1.0 ישמש לבניית א פרויקט כי הדרך ה הוא קצר יותר.

ישנן טכניקות שונות לקביעת גרסת החפצים שיש לכלול:

  • אנחנו תמיד יכולים להבטיח גרסה על ידי הצהרה מפורשת ב- POM של הפרויקט שלנו. למשל, כדי להבטיח זאת ד 1.4 משמש, עלינו להוסיף אותו במפורש כתלות ב- pom.xml קוֹבֶץ.
  • אנחנו יכולים להשתמש ב- ניהול תלות סעיף לשליטה בגרסאות חפץ כפי שנסביר בהמשך מאמר זה.

2.4. ניהול תלות

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

כשיש לנו קבוצה של פרויקטים שירשו הורה משותף, נוכל להכניס את כל פרטי התלות לקובץ POM משותף שנקרא BOM.

להלן דוגמה כיצד לכתוב קובץ BOM:

 4.0.0 baeldung Baeldung-BOM 0.0.1-SNAPSHOT pom BaelDung-BOM הורה pom test a 1.2 test b 1.0 compile test c 1.0 compile 

כפי שאנו רואים, ה- BOM הוא קובץ POM רגיל עם a תלות ניהול קטע בו אנו יכולים לכלול את כל המידע והגרסאות של חפץ.

2.5. באמצעות קובץ ה- BOM

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

אנו יכולים לרשת מההורה:

 4.0.0 מבחן baeldung 0.0.1-SNAPSHOT פום מבחן baeldung Baeldung-BOM 0.0.1-SNAPSHOT 

כפי שאנחנו יכולים לראות את הפרויקט שלנו מבחן יורש את ה- Baeldung-BOM.

אנו יכולים גם לייבא את ה- BOM.

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

בואו נראה איך נוכל לייבא קובץ BOM לפרויקט POM שלנו:

 4.0.0 מבחן baeldung 0.0.1-SNAPSHOT פום מבחן baeldung Baeldung-BOM 0.0.1-SNAPSHOT pom יבוא 

2.6. החלפת תלות ב- BOM

סדר העדיפות של גרסת החפץ הוא:

  1. גרסת ההצהרה הישירה של החפץ בפום הפרויקט שלנו
  2. גרסת החפץ בפרויקט האב
  3. הגרסה בפום המיובא, תוך התחשבות בסדר ייבוא ​​הקבצים
  4. גישור תלות
  • אנו יכולים להחליף את גרסת החפץ על ידי הגדרה מפורשת של החפץ בפום של הפרויקט שלנו עם הגרסה הרצויה.
  • אם אותו חפץ מוגדר עם גרסאות שונות ב- 2 BOMs מיובאים, הגרסה בקובץ BOM שהוכרזה ראשונה תזכה

3. BOM באביב

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

כדי להתגבר על בעיות כאלה, מייבן תומך במושג תלות ב- BOM.

אנחנו יכולים לייבא את אביב-מסגרת-בום בשלנו תלות ניהול סעיף כדי להבטיח שכל תלות האביב באותה גרסה:

   org.springframework spring-framework-bom 4.3.8.RELEASE יבוא פום 

אנחנו לא צריכים לציין את גִרְסָה תכונה כאשר אנו משתמשים בחפצי האביב כמו בדוגמה הבאה:

  org.springframework spring-context org.springframework spring-web 

4. מסקנה

במאמר מהיר זה, הראינו את הרעיון Maven Bill-of-Material וכיצד לרכז את המידע והגרסאות של החפץ ב- POM משותף.

במילים פשוטות, אז נוכל לרשת אותו או לייבא אותו כדי להשתמש בהטבות ה- BOM.

את דוגמאות הקוד במאמר ניתן למצוא באתר GitHub.


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