אם התלות היא לא ספרייה מקומית או עץ קבצים, Gradle מחפש את הקבצים במאגרים אונליין שצוינו בבלוק dependencyResolutionManagement { repositories {...} } של הקובץ settings.gradle. הסדר שבו אתם מפרטים את המאגרים קובע את הסדר שבו Gradle מחפש במאגרים את יחסי התלות של כל פרויקט.
לדוגמה, אם יחסי תלות זמינים גם ממאגר א' וגם ממאגר ב', ואתם מציגים את מאגר א' קודם, Gradle מוריד את יחסי התלות ממאגר א'.
כברירת מחדל, בפרויקטים חדשים של Android Studio, מאגר ה-Maven של Google ומאגר ה-Maven המרכזי מוגדרים כמיקומי המאגר בקובץ settings.gradle של הפרויקט, כמו בדוגמה הבאה:
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
מגניב
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
אם רוצים משהו ממאגר מקומי, משתמשים ב-mavenLocal():
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() mavenLocal() } }
מגניב
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() mavenLocal() } }
אפשר גם להצהיר על מאגרי Maven או Ivy ספציפיים באופן הבא:
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven(url = "https://repo.example.com/maven2") maven(url = "file://local/repo/") ivy(url = "https://repo.example.com/ivy") } }
מגניב
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url 'https://repo.example.com/maven2' } maven { url 'file://local/repo/' } ivy { url 'https://repo.example.com/ivy' } } }
מידע נוסף זמין במדריך למאגרי Gradle.
מאגר Maven של Google
הגרסאות העדכניות של ספריות Android הבאות זמינות במאגר Maven של Google:
- ספריות AndroidX
- ספריית רכיבי הארכיטקטורה
- ספריית Constraint Layout
- AndroidX Test
- ספריית Databinding
- ספריית אפליקציות ללא התקנה ל-Android
- Wear OS
- Google Play Services
- ספריית החיובים ב-Google Play
- Firebase
אפשר לראות את כל פריטי המידע שנוצרו בתהליך הפיתוח באינדקס של מאגר Maven של Google. (לגישה פרוגרמטית, ראו גישה פרוגרמטית).
כדי להוסיף אחת מהספריות האלה ל-build, צריך לכלול את מאגר ה-Maven של Google בקובץ build.gradle.kts ברמה העליונה:
Kotlin
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() // If you're using a version of Gradle lower than 4.1, you must instead use: // maven { // url = "https://maven.google.com" // } // An alternative URL is "https://dl.google.com/dl/android/maven2/". } }
מגניב
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() // If you're using a version of Gradle lower than 4.1, you must instead use: // maven { // url 'https://maven.google.com' // } // An alternative URL is 'https://dl.google.com/dl/android/maven2/'. } }
לאחר מכן, מוסיפים את הספרייה שבחרתם לבלוק dependencies של המודול. לדוגמה, ספריית appcompat נראית כך:
Kotlin
dependencies { implementation("com.android.support:appcompat-v7:28.0.0") }
מגניב
dependencies { implementation 'androidx.appcompat:appcompat:1.7.0' }
עם זאת, אם אתם מנסים להשתמש בגרסה ישנה יותר של הספריות האלה והתלות נכשלת, סימן שהיא לא זמינה במאגר Maven, ואתם צריכים לקבל את הספרייה מהמאגר אופליין.
גישה פרוגרמטית
כדי לגשת באופן פרוגרמטי לארטיפקטים של Maven ב-Google, אתם יכולים לקבל רשימת XML של קבוצות ארטיפקטים מ-maven.google.com/master-index.xml. לאחר מכן, בכל קבוצה, אפשר לראות את השמות והגרסאות של הספרייה בכתובת:
maven.google.com/group_path/group-index.xml
לדוגמה, ספריות בקבוצה android.arch.lifecycle מופיעות בכתובת maven.google.com/android/arch/lifecycle/group-index.xml.
אפשר גם להוריד את קובצי ה-POM וה-JAR בכתובת:
maven.google.com/group_path/library/version /library-version.ext
לדוגמה: maven.google.com/android/arch/lifecycle/compiler/1.0.0/compiler-1. 0.0.pom.
מאגר אופליין מ-SDK Manager
אם הספרייה לא זמינה במאגר Maven של Google (בדרך כלל גרסאות ישנות יותר של הספרייה), צריך להוריד את חבילת Google Repository אופליין מ-SDK Manager.
לאחר מכן, אפשר להוסיף את הספריות האלה לבלוק dependencies כרגיל.
הספריות אופליין נשמרות ב-android_sdk/extras/.