מדריך לעטיפת הגרדלים

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

Gradle משמש בדרך כלל על ידי מפתחים לניהול מחזור החיים של הפרויקט שלהם. זוהי אפשרות ברירת המחדל של כלי הבנייה עבור כל פרויקטים חדשים של Android.

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

2. עטיפת גראדל

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

Gradle Wrapper, נקרא גם עֲטִיפָה בקיצור, פותר את הבעיה הזו. זהו סקריפט שמריץ משימות של Gradle עם גרסה מוצהרת. אם הגרסה המוצהרת אינה מותקנת, Wrapper מתקין את הגרסה הנדרשת.

היתרונות העיקריים של Wrapper הם שאנחנו יכולים:

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

בחלקים הבאים נפעיל משימות Gradle המחייבות התקנת Gradle באופן מקומי.

2.1. יצירת קובצי עטיפה

כדי להשתמש ב- Wrapper, עלינו ליצור כמה קבצים מסוימים. ניצור קבצים אלה באמצעות משימת ה- Gradle המובנית הנקראת עֲטִיפָה. שים לב שעלינו ליצור קבצים אלה פעם אחת בלבד.

עכשיו, בוא ננהל את עֲטִיפָה המשימה בספריית הפרויקטים שלנו:

עטיפת $ gradle 

בואו נראה את הפלט של פקודה זו:

בואו נסתכל מה הם קבצים אלה:

  • gradle-wrapper.jar מכיל קוד להורדת הפצת Gradle שצוינה ב- gradle- wrapper.properties קוֹבֶץ
  • gradle-wrapper.properties מכיל מאפייני זמן ריצה של Wrapper - והכי חשוב, גרסת הפצת Gradle התואמת לפרויקט הנוכחי
  • מדרדר הוא התסריט שמבצע משימות Gradle עם ה- Wrapper
  • gradlew.bat האם ה מדרדר סקריפט אצווה שווה ערך למכונות Windows

כברירת מחדל, ה- עֲטִיפָה המשימה מייצרת קבצי Wrapper עם גרסת Gradle המותקנת כעת במחשב. אנו יכולים לציין גרסה אחרת במידת הצורך:

עטיפת $ gradle - גרסת גרסה 6.3 

המלצנו לבדוק את קבצי ה- Wrapper ב-מערכת בקרת המקור כמו GitHub. בדרך זו אנו מבטיחים שמפתחים אחרים יוכלו להריץ את הפרויקט ללא צורך בהתקנת Gradle.

2.2. הפעלת פקודות Gradle עם Wrapper

אנו יכולים להריץ כל משימת Gradle עם ה- Wrapper על ידי החלפה דרגה עם מדרדר.

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

משימות $ gradlew

בואו נסתכל על הפלט:

משימות עזרה ---------- buildEnvironment - מציג את כל התלות של buildscript שהוכרזו בפרוייקט השורש 'גלישת כיתוב'. רכיבים - מציג את הרכיבים המיוצרים על ידי פרויקט השורש 'עטיפת דרגה'. [דגירה] תלות - מציג את כל התלות המוצהרת בפרויקט השורש 'גלישת כיתת'. dependencyInsight - מציג את התובנה לתלות ספציפית בפרויקט השורש 'כריכת כותרת'. dependComponents - מציג את המרכיבים התלויים של רכיבים בפרוייקט השורש 'עטיפת דרגה'. [דגירה] עזרה - מציג הודעת עזרה. model - מציג את מודל התצורה של פרויקט השורש 'כריכת עיגול'. [הדגירה] יוצא וריאנטים - מציג את הגרסאות היוצאות של פרויקט השורש 'כריכת עיגול'. פרויקטים - מציג את פרוייקטים המשניים של פרויקט השורש 'עטיפת דרגה'. מאפיינים - מציג את המאפיינים של פרויקט השורש 'עטיפת דרגה'. משימות - מציג את המשימות שניתנות להפעלה מתוך פרויקט השורש 'עטיפת דרגה'.

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

3. סוגיות נפוצות

עכשיו, בואו נסתכל על כמה נושאים נפוצים שאנחנו עשויים להתמודד איתם בעבודה עם Wrapper.

3.1. .Gitignore העולמי שמתעלם מכל קבצי הצנצנות

ארגונים מסוימים אינם מאפשרים למפתחים לבדוק קבצי צנצנת במערכת בקרת המקור שלהם. בדרך כלל, לפרויקטים כאלה יש כלל בעולם .gitignore קובץ כדי להתעלם מכל קבצי הצנצנת. לכן, ה gradle-wrapper.jar הקובץ לא נבדק במאגר git. מסיבה זו משימות Wrapper אינן פועלות במכונות אחרות. במקרים כאלו, אנחנו צריכים להוסיף את gradle-wrapper.jar קובץ ל git בכוח:

git add -f gradle / wrapper / gradle-wrapper.jar

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

3.2. חסרה תיקיית עטיפה

בעת בדיקה של פרויקט מבוסס עטיפה, אנו עשויים לשכוח לכלול את עֲטִיפָה תיקייה שקיימת בתוך דרגה תיקיה. אך כפי שראינו לעיל, עֲטִיפָה התיקיה מכילה שני קבצים קריטיים: gradle-wrapper.jar ו gradle- wrapper.properties.

ללא קבצים אלה, נקבל שגיאות בעת הפעלת משימות Gradle עם Wrapper. לָכֵן, אנחנו חייבים לבדוק את עֲטִיפָה התיקייה למערכת בקרת המקור.

3.3. הוסרו קבצי עטיפה

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

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

4. מסקנה

במדריך זה למדנו על Gradle Wrapper והשימוש הבסיסי בו. למדנו גם על כמה בעיות נפוצות שעומדות בפנינו בעבודה עם Gradle Wrapper.

כרגיל, אנחנו יכולים לבדוק את הפרויקט עם קבצי Gradle Wrapper שנוצרו ב- GitHub.