קטלוגים של גרסאות 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
, מגדירים את הפלאגינים.
שלבים בהעברה
מומלץ לבצע את השלבים לפי הסדר שמופיע. תהליך הבנייה יכול לצרוך תלות ותוספים מסקריפטים ומקטלוגים של בנייה בו-זמנית, לכן כדאי להקדיש זמן להעברת התלות והתוספים בנפרד.
תהליך ההעברה הוא:
- מוסיפים את הרשומה החדשה לקטלוג.
- מסנכרנים את פרויקט Android.
- מחליפים את הצהרת המחרוזת הקודמת ברכיב הגישה הבטוח לסוג של הקטלוג.
העברת יחסי תלות
מוסיפים רשומה לכל תלות בקטעים 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" }
מומלץ להשתמש בפורמט kebab case (למשל, androidx-ktx
) בשמות של בלוקים של יחסי תלות בקטלוגים, כדי לקבל עזרה טובה יותר בהשלמת קוד בקובצי ה-build.
בקובץ build.gradle.kts
של כל מודול שנדרש לו יחסי תלות,
מגדירים את יחסי התלות לפי השמות שהגדרתם בקובץ TOML.
Kotlin
dependencies { implementation(libs.androidx.ktx) }
מגניב
dependencies { implementation libs.androidx.ktx }
העברת פלאגינים
מוסיפים רשומה לכל פלאגין גם בקטע versions וגם בקטע plugins בקובץ 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" }
בדומה לתלות, מומלץ להשתמש בפורמט kebab case (למשל android-application
) עבור רשומות plugins
בקטלוג הבלוקים
כדי לשפר את ההשלמה האוטומטית של הקוד
בקובצי ה-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 }
מידע נוסף
כדי לקבל מידע על אפשרויות נוספות להגדרת קטלוג הגרסאות, אפשר לעיין במקורות המידע הבאים:
- בפורמט קובץ TOML של קטלוג הגרסאות מפורטות אפשרויות נוספות להגדרת קובץ הקטלוג.
- Now in Android היא אפליקציית הדוגמה שלנו שמשתמשת בקטלוגים של גרסאות.