העברת ה-build לקטלוגים של גרסאות

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

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

יצירת קובץ קטלוג גרסאות

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

בקובץ libs.versions.toml, מוסיפים את הקטעים הבאים:

[versions]

[libraries]

[plugins]

אלה הקטעים שיופיעו בקטעים:

  • בבלוק versions, מגדירים משתנים שמחזיקים את הגרסאות של של יחסי התלות ויישומי פלאגין. אתם משתמשים במשתנים האלה בבלוקים הבאים: (הבלוקים libraries ו-plugins).
  • מגדירים את יחסי התלות בבלוק libraries.
  • בבלוק plugins, מגדירים את יישומי הפלאגין.

שלבי ההעברה

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

תהליך ההעברה הוא:

  1. מוסיפים את הרשומה החדשה לקטלוג.
  2. מסנכרנים את פרויקט Android.
  3. צריך להחליף את הצהרת המחרוזת הקודמת ברכיב הגישה הבטוח מסוג קטלוג.

העברת יחסי התלות

צריך להוסיף רשומה לכל תלות בקטע versions ובקטע libraries של הקובץ libs.versions.toml. צריך לסנכרן את הפרויקט ואז להחליף את הפרויקטים את ההצהרות בקובצי ה-build עם שמות הקטלוג שלהם.

בקטע הקוד הזה מוצג הקובץ build.gradle.kts לפני הסרתו של תלות:

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.9.0")

}

מגניב

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'

}

קטע הקוד הזה מראה איך להגדיר את התלות בגרסה קובץ קטלוג:

[versions]
ktx = "1.9.0"

[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }

השם המומלץ לקבוצת יחסי התלות בקטלוגים הוא מקרה קבב (למשל, androidx-ktx) לשיפור עזרה בהשלמת קוד בקובצי ה-build.

בקובץ build.gradle.kts של כל מודול שדורש את התלות, מגדירים את יחסי התלות לפי השמות שהגדרתם בקובץ ה-TOML.

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

מגניב

dependencies {
   implementation libs.androidx.ktx

}

העברת יישומי פלאגין

מוסיפים רשומה לכל פלאגין בקטעים של הגרסאות ויישומי הפלאגין של את הקובץ libs.versions.toml. צריך לסנכרן את הפרויקט ואז להחליף את הפרויקטים הצהרות בבלוק plugins{} בקובצי ה-build עם הקטלוג שלהם שמות.

בקטע הקוד הזה מוצג הקובץ build.gradle.kts לפני הסרתו יישומי פלאגין:

Kotlin

// Top-level `build.gradle.kts` file
plugins {
   id("com.android.application") version "7.4.1" apply false

}

// Module-level `build.gradle.kts` file
plugins {
   id("com.android.application")

}

מגניב

// Top-level `build.gradle` file
plugins {
   id 'com.android.application' version '7.4.1' apply false

}

// Module-level `build.gradle` file
plugins {
   id 'com.android.application'

}

קטע הקוד הבא מראה איך להגדיר את הפלאגין בקובץ קטלוג הגרסאות:

[versions]
androidGradlePlugin = "7.4.1"

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

בדומה ליחסי תלות, הפורמט המומלץ לקטלוג של בלוקים של plugins ערכים הם קבב (כמו android-application) כדי לשפר את התוצאות עזרה בהשלמת קוד בקובצי ה-build.

הקוד הבא מראה איך להגדיר את הפלאגין com.android.application ב- את הקבצים build.gradle.kts ברמה העליונה וברמת המודול. שימוש ב-alias ליישומי פלאגין שמקורם בקובץ קטלוג הגרסאות וב-id עבור יישומי פלאגין שלא מגיעים מקובץ קטלוג הגרסאות, כמו יישומי פלאגין מקובלים.

Kotlin

// Top-level build.gradle.kts
plugins {
   alias(libs.plugins.android.application) apply false

}

// module build.gradle.kts
plugins {
   alias(libs.plugins.android.application)

}

מגניב

// Top-level build.gradle
plugins {
   alias libs.plugins.android.application apply false

}

// module build.gradle
plugins {
   alias libs.plugins.android.application

}

מידע נוסף

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

בעיות מוכרות

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