תלות אופציונלית במייבן

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

מדריך קצר זה יתאר את זה של מייבן תג וכיצד נוכל להשתמש בו כדי להקטין את הגודל וההיקף של החפץ של פרויקט Maven, כגון WAR, EAR או JAR.

לקבלת רענון על Maven, עיין במדריך המקיף שלנו.

2. מה זה ?

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

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

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

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

3. כיצד להשתמש

כפי שנראה אנו יכולים לכלול את ה- אלמנט עם ערך של נָכוֹן כדי להפוך כל תלות של Maven לבחירה.

נניח שיש לנו את הפרויקט הבא של פום:

 ... project-with-optionals ... com.baeldung option-project 0.0.1-SNAPSHOT נכון 

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

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

 ... פרויקט ראשי ... com.baeldung project-with-optionals 0.0.1-SNAPSHOT 

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

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

4. מסקנה

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

קוד המקור במאמר זה זמין באתר Github.


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